gpt4 book ai didi

c# - 具有分布式 session 的 ASP.Net Core Identity

转载 作者:行者123 更新时间:2023-11-30 12:22:39 25 4
gpt4 key购买 nike

我在我的 ASP.NET 应用程序中使用 Identity,但在 AWS 上的两个网络服务器上运行,并且有一个问题,当你在一个服务器上登录时,你没有在另一个服务器上登录,因为他们没有不要共享同一个 session 。

这也是一个问题,例如当我部署我的应用程序的新版本时 - 用户将注销并必须重新登录。

我已经尝试在我的 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();

此外,当使用外部登录时,我将 _signInManager.ExternalLoginSignInAsyncisPersistent 参数设置为 true

关于c# - 具有分布式 session 的 ASP.Net Core Identity,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40154451/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com