第一步先註冊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;
}