我使用ClaimsIdentity Framework在我的一个应用程序中设置auth。
我将这些行添加到 web.config 文件中,如this question中所述。
<sessionState
mode="InProc"
timeout="1" />
我让应用程序一夜之间运行,但我仍然登录。 我想将会话超时设置为30分钟,有什么建议吗?
ASP.NET MVC版本:5.2.3.0
答案 0 :(得分:2)
每ASP.Net-Identity-Cookie-Authentication-Timeouts你应该使用Identity的UseCookieAuthentication()
参数来设置超时。
app.UseCookieAuthentication(new CookieAuthenticationOptions
{
AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie,
LoginPath = new PathString("/Account/Login"),
Provider = new CookieAuthenticationProvider
{
OnValidateIdentity = SecurityStampValidator.OnValidateIdentity<ApplicationUserManager, ApplicationUser>(
validateInterval: TimeSpan.FromMinutes(15),
regenerateIdentity: (manager, user) => user.GenerateUserIdentityAsync(manager)),
},
SlidingExpiration = false,
ExpireTimeSpan = TimeSpan.FromMinutes(30)
});
CookieAuthenticationOptions.ExpireTimespan是一个选项,允许您设置发布的cookie有效的时间。在上面的示例中,cookie从创建时起30分钟有效。一旦这30分钟结束,用户将不得不重新签名,因为SlidingExpiration设置为false。
如果SlidingExpiration设置为true,那么将在ExpireTimeSpan中途的任何请求上重新发出cookie。例如,如果用户登录并在16分钟后再发出第二个请求,则会再次发出cookie 30分钟。如果用户登录,然后在31分钟后发出第二个请求,则会提示用户登录。