当前,每次用户浏览器关闭时,他/她将不得不再次登录。
他们登录时,这是我用来在Identity中对其进行签名的代码。
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的生存期,否则,用户将必须在首次发出cookie的60分钟后重新进行身份验证。
支持文档:
最后,登录调用应传递true
给第二个参数。仅在使用2因子身份验证时,第三个参数才有意义。
SignInManager.SignIn(user, true, false);
边注
为了安全起见,也设置选项CookieHttpOnly = true
可以确保脚本/客户端代码无法访问cookie,这不是一个坏主意。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句