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