gpt4 book ai didi

c# - 即使在使用 Identity ASP.NET MVC 框架关闭浏览器后,如何让用户保持登录状态?

转载 作者:行者123 更新时间:2023-12-05 03:07:45 26 4
gpt4 key购买 nike

目前,每次用户浏览器关闭时,他/她都必须重新登录。

当他们登录时,这是我用来登录他们身份的代码。

SignInManager.SignIn(user, false, false);

这是我今天的身份验证配置方式

public void ConfigureAuth(IAppBuilder app)
{
app.CreatePerOwinContext(ApplicationDbContext.Create);
app.CreatePerOwinContext<ApplicationUserManager>(ApplicationUserManager.Create);
app.CreatePerOwinContext<ApplicationSignInManager>(ApplicationSignInManager.Create);

app.UseCookieAuthentication(new CookieAuthenticationOptions
{
AuthenticationType = "SomeCustomName",
LoginPath = new PathString("/Account/Login"),
Provider = new CookieAuthenticationProvider
{
OnValidateIdentity = SecurityStampValidator.OnValidateIdentity<ApplicationUserManager, ApplicationUser>(
validateInterval: TimeSpan.FromMinutes(60),
regenerateIdentity: (manager, user) => user.GenerateUserIdentityAsync(manager))
},
SlidingExpiration = false,
ExpireTimeSpan = TimeSpan.FromMinutes(60)
});

app.UseExternalSignInCookie(DefaultAuthenticationTypes.ExternalCookie);
app.UseTwoFactorSignInCookie(DefaultAuthenticationTypes.TwoFactorCookie, TimeSpan.FromMinutes(3));
app.UseTwoFactorRememberBrowserCookie(DefaultAuthenticationTypes.TwoFactorRememberBrowserCookie);
}

即使他/她关闭了浏览器,我怎样才能让用户保持登录状态 60 分钟?

最佳答案

您应该进行 2 处更改。

AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie,
SlidingExpiration = true,

您想使用一个 cookie,以便它在浏览器中持久保存,并且可以在以后再次打开该网站时重新读取。您还希望调整过期时间,这样每个请求都会延长 cookie 的生命周期,否则用户将不得不在 第一次 cookie 发出后 60 分钟后重新进行身份验证。 p>

支持文档:

最后,登录调用应为第二个参数传递 true。第三个参数仅在您使用 2 因素身份验证时才相关。

SignInManager.SignIn(user, true, false);

边注

为了安全起见,设置选项 CookieHttpOnly = true 也是一个不错的主意,它可以确保脚本/客户端代码无法访问 cookie。

关于c# - 即使在使用 Identity ASP.NET MVC 框架关闭浏览器后,如何让用户保持登录状态?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46588534/

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