ASP.NET Core中使用Session
1、在程序包管理控制台中執行命令安裝依賴包:
PM> Install-Package Microsoft.AspNetCore.Session -Version 2.2.0
也可直接在項目工程文件(*.csproj)中添加如下代碼達到添加Session依賴的目的
1 <ItemGroup> 2 <PackageReference Include="Microsoft.AspNetCore.Session" Version="2.2.0" /> 3 </ItemGroup>
2、使用依賴關系注入從應用中引用的服務
在Startup類的ConfigureServices()方法中調用AddSession()服務:
1 public void ConfigureServices(IServiceCollection services) 2 { 3 services.AddSession(); 4 }
3、使用中間件
在Startup類的Configure()方法中添加UseSession()中間件:
1 public void Configure(IApplicationBuilder app, IHostingEnvironment env) 2 { 3 app.UseSession(); 4 }
4、修改配置,防止頁面切換后Session失效
防止頁面切換后Session ID改變,Seesion失效
1 public void ConfigureServices(IServiceCollection services) 2 { 3 services.Configure<CookiePolicyOptions>(options => 4 { 5 // This lambda determines whether user consent for non-essential cookies is needed for a given request. 6 options.CheckConsentNeeded = context => false;//默認為true,改為false 7 options.MinimumSameSitePolicy = SameSiteMode.None; 8 }); 9 }
5、使用Session
Session寫入
1 HttpContext.Session.SetString("key", "value");
Session讀取
1 HttpContext.Session.GetString("key");
擴展方法
1 /// <summary> 2 /// Session寫入 3 /// </summary> 4 /// <param name="key">鍵</param> 5 /// <param name="value">值</param> 6 protected void SetSession(string key, string value) 7 { 8 HttpContext.Session.SetString(key, value); 9 } 10 11 /// <summary> 12 /// Session讀取 13 /// </summary> 14 /// <param name="key">鍵</param> 15 /// <returns>返回對應的值</returns> 16 protected string GetSession(string key) 17 { 18 var value = HttpContext.Session.GetString(key); 19 if (string.IsNullOrEmpty(value)) 20 value = string.Empty; 21 return value; 22 }
關於.net core中session的使用分享到此結束,如有不足之處,歡迎大家留言評論!