我有以下代码:
public void ConfigureAuth(IAppBuilder app)
{
app.UseCookieAuthentication(new CookieAuthenticationOptions
{
AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie,
ExpireTimeSpan = System.TimeSpan.FromMinutes(1),
LoginPath = new PathString("/Account/Login"),
LogoutPath = new PathString("/Account/LogOff")
});
但登录会话有效超过1分钟。此外,时间到期时不会调用LogoutPath。为什么呢?
答案 0 :(得分:23)
它确实会过期。
确保您没有任何后台ajax活动,因为它扩展了会话(默认情况下SlidingExpiration
为真)。
此外,我必须在将ExpireTimeSpan
从the default 14 days更改为较小的值后手动删除旧Cookie。
答案 1 :(得分:0)
您必须将 IsPersistent 设置为true,否则就不会运行代码
ClaimsIdentity claimsIdentity = new ClaimsIdentity(Claims, CookieAuthenticationDefaults.AuthenticationScheme);
var authProperties = new AuthenticationProperties
{
IsPersistent = true
};
await HttpContext.SignInAsync(CookieAuthenticationDefaults.AuthenticationScheme, new ClaimsPrincipal(claimsIdentity), authProperties);