簡體   English   中英

ASP.Net核心身份與分布式會話

[英]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.ExternalLoginSignInAsynctrue

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM