Session是咱們在web開發中常用的對象,它默認是存在本機的,可是在ASP.NET Core中咱們能夠十分方便的將Session的存儲介質改成分佈式緩存(Redis)或者數據庫(SqlServer)。分佈式的緩存能夠提升ASP.NET Core 應用的性能和可伸縮性 ,尤爲是在託管在雲中或服務器場環境中web
ASP.NET Core 已經爲咱們實現了Redis緩存。redis
public void ConfigureServices(IServiceCollection services) { services.AddMvc(); //添加redis services.AddDistributedRedisCache(options => { options.Configuration = "localhost"; }); //添加session services.AddSession(options => { options.IdleTimeout = TimeSpan.FromMinutes(10); //session活期時間 options.Cookie.HttpOnly = true;//設爲httponly }); }
public void Configure(IApplicationBuilder app, IHostingEnvironment env) { //使用session app.UseSession(); ... }
使用 HttpContext.Session
來獲取Session對象數據庫
例:HttpContext.Session.SetString("userid","1000");
緩存
運行項目,能夠看到redis已經有咱們剛剛訪問所建立的Session服務器