1. 在公共层添加一个SessionExtensions类
注:(添加Nuget包Microsoft.AspNetCore.Http.Extensions)
public static class SessionExtensions //用于存储、获取Session类
{
/// <summary>
/// 存储Session对象
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="session"></param>
/// <param name="key"></param>
/// <param name="value"></param>
public static void Set<T>(this ISession session, string key, T value)
{
session.SetString(key, JsonConvert.SerializeObject(value));
}
/// <summary>
/// 获取Session对象
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="session"></param>
/// <param name="key"></param>
/// <param name="value"></param>
public static T Get<T>(this ISession session, string key)
{
var value = session.GetString(key);
return value == null ? default(T) : JsonConvert.DeserializeObject<T>(value);
}
}
2. 在表示层中AccountController控制器下的ValidateLogin验证登录方法下添加写入Session代码
AdminInfo adminInfo = result.data;
//写入Session
HttpContext.Session.Set("Market_User", adminInfo);
3. 在表示层下Startup类中的ConfigureServices方法下添加注册Session代码
//注册Session
services.AddSession(s=>
{
s.Cookie.Name = ".Market.Session";