第一步先注册session:
在Startup.cs文件中的ConfigureServices方法中添加:
services.Configure<CookiePolicyOptions>(options =>
{
options.CheckConsentNeeded = context => false;
options.MinimumSameSitePolicy = SameSiteMode.None;
});
//启用内存缓存(该步骤需在AddSession()调用前使用)
services.AddDistributedMemoryCache();//启用session之前必须先添加内存
//services.AddSession();
services.AddSession(options =>
{
options.Cookie.Name = ".AdventureWorks.Session";
options.IdleTimeout = TimeSpan.FromSeconds(2000);//设置session的过期时间
options.Cookie.HttpOnly = true;//设置在浏览器不能通过js获得该cookie的值
});
第二步:
public void Configure(
IApplicationBuilder app,
IHostingEnvironment env)
{
//定义LOG日志
var log = LogManager.GetLogger(repository.Name, typeof(Startup)); //添加日志
app.UseSession();//UseSession配置在UseMvc之前 开启session
app.UseDeveloperExceptionPage();
app.UseStaticFiles();
app.UseAuthentication();//开启权限
app.UseMvcWithDefaultRoute();
}
第三步:使用NuGet引用程序集:
需要安装 Microsoft.AspNetCore.Session 包
需要使用的结果引用如下:
Microsoft.AspNetCore.Mvc
using Microsoft.AspNetCore.Http;
扩展方法为
/// <summary>
/// 设置Session
/// </summary>
/// <param name="key">键</param>
/// <param name="value">值</param>
protected void SetSession(string key, string value)
{
HttpContext.Session.SetString(key, value);
}
/// <summary>
/// 获取Session
/// </summary>
/// <param name="key">键</param>
/// <returns>返回对应的值</returns>
protected string GetSession(string key)
{
var value = HttpContext.Session.GetString(key);
if (string.IsNullOrEmpty(value))
value = string.Empty;
return value;
}