4
在我AccountController
我有以下的Login
方法:如何在ASP.NET MVC 5中設置Forms Auth Cookie過期時間?
var claims = new List<Claim>();
claims.Add(new Claim(ClaimTypes.Name, model.UserName));
AuthenticationManager.SignIn(
new AuthenticationProperties { IsPersistent = model.RememberMe,
ExpiresUtc = expiry },
new ClaimsIdentity(claims, DefaultAuthenticationTypes.ApplicationCookie));
其中expiry
是計算DateTimeOffset
值。
不管我爲expiry
設置了什麼值,.AspNet.ApplicationCookie
的到期時間總是14天。
有什麼辦法可以自定義這個過期值嗎?
它與https://katanaproject.codeplex.com/workitem/115有關嗎?
請注意,在Startup.Auth.cs
中,我沒有ExpireTimeSpan
屬性集。當我確定財產的價值受到尊重時,上述方法仍然無能爲力。
我想指出的是,有人可能會遇到,如果他們正在調試cookie有效期與Owin一兩件事。顯然,驗證cookie過期的時間間隔由CookieAuthenticationProvider.OnValidateIdentity屬性定義。從使用OWIN標識的MVC5模板創建的項目設置的時間間隔爲30分鐘。所以auth cookie可能已經過期,但不會超時用戶的會話,直到該時間間隔被擊中。修改此問題的代碼位於Startup.Auth.cs的ConfigureAuth方法中:'validateInterval:TimeSpan.FromMinutes(30)' –