我使用ASP.NET Identity创建了一个新的ASP.NET MVC网站。我使用Visual Studio 2017生成的标准逻辑,并选择了个人用户帐户。
一切正常,但它似乎在大约10 - 20分钟不活动的情况下让我退出,并且我想保持登录的时间超过这个。
在谷歌搜索后,我找到了有关设置1,3
的信息。但是,使用调试器,我可以看到默认情况下此值设置为14天。
Startup.Auth.cs:
CookieAuthenticationOptions.ExpireTimeSpan
Web.Config中:
app.UseCookieAuthentication(new CookieAuthenticationOptions
{
AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie,
LoginPath = new PathString("/Account/Login"),
Provider = new CookieAuthenticationProvider
{
OnValidateIdentity = SecurityStampValidator.OnValidateIdentity<ApplicationUserManager, ApplicationUser>(
validateInterval: TimeSpan.FromMinutes(30),
regenerateIdentity: (manager, user) => user.GenerateUserIdentityAsync(manager))
},
//SlidingExpiration = true, // Default: true
//ExpireTimeSpan = TimeSpan.FromHours(1) // Default: 14 days
});
那么,有没有人知道如何在我因不活动而退出之前增加时间?
答案 0 :(得分:1)
您是否使用isPersistent标志登录?
SignInManager.PasswordSignInAsync(string userName, string password, bool isPersistent, bool shouldLockout)
您需要传递isPersistent = true以使用cookie数据再次自动登录。
如果您在此处被拒绝,则会在SecurityStampValidator.OnValidateIdentity中刷新您的身份,然后它会将您注销。
我建议你实现自己的SecurityStampValidator和UserManager,然后你可以调试它在OnValidateIdentity中拒绝你的原因。
另外检查你的缓存,也许你只是有一个缓存问题,它看起来就像你退出了,因为你显示了一些“旧的”内容。
答案 1 :(得分:0)
这是在web.config文件上配置的,如下所示
<system.web>
<authentication mode="Forms">
<forms loginUrl="~/SignIn/LoginPage" timeout="2880" defaultUrl="~/Pages/ServicesPage" />
</authentication>
超时时间在属性 timeout 上以毫秒为单位定义