[英]ASP.Net Core Identity with distributed session
我在我的ASP.NET應用程序中使用Identity,但在AWS上運行兩個Web服務器,並且遇到的問題是,當您在一台服務器上登錄時,您沒有登錄另一台服務器,因為它們不共享同一會議。
這也是一個問題,例如當我部署我的應用程序的新版本時 - 那么用戶將被注銷並且必須再次登錄。
我嘗試在我的Configure
方法中使用Redis添加分布式緩存:
app.UseSession();
和我的ConfigureServices
:
services.AddDistributedRedisCache(options =>
{
options.Configuration = "uri-to-redis-server";
options.InstanceName = "name";
});
services.AddIdentity<ApplicationUser, IdentityRole>(o =>
{
o.Password.RequireNonAlphanumeric = false;
})
.AddEntityFrameworkStores<MyContext>()
.AddDefaultTokenProviders();
services.AddMvc();
services.AddSession();
關於我能做什么的任何想法?
我修好了它! 首先,我將cookie選項設置為具有ExpireTimeSpan:
services.AddIdentity<ApplicationUser, IdentityRole>(o =>
{
o.Password.RequireNonAlphanumeric = false;
o.Cookies.ApplicationCookie.ExpireTimeSpan = TimeSpan.FromDays(24);
o.Cookies.ApplicationCookie.SlidingExpiration = true;
})
.AddEntityFrameworkStores<MyDbContext>()
.AddDefaultTokenProviders();
此外,在使用外部登錄的時候,我的設置isPersistent
的說法_signInManager.ExternalLoginSignInAsync
至true
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.