前言
Session是我們在web開發中經常使用的對象,它默認是存在本機的,但是在ASP.NET Core中我們可以十分方便的將Session的存儲介質改為分布式緩存(Redis)或者數據庫(SqlServer)。分布式的緩存可以提高ASP.NET Core 應用的性能和可伸縮性 ,尤其是在托管在雲中或服務器場環境中
使用
ASP.NET Core 已經為我們實現了Redis緩存。
1.配置服務
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
});
}
2.啟用Session
public void Configure(IApplicationBuilder app, IHostingEnvironment env)
{
//使用session
app.UseSession();
...
}
對Session進行操作
使用 HttpContext.Session
來獲取Session對象
例:HttpContext.Session.SetString("userid","1000");
運行項目,可以看到redis已經有我們剛剛訪問所創建的Session