在我Login
的{{1}}方法中,我有以下内容:
AccountController
其中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
的到期时间始终为14天。
有没有办法自定义此到期值?
它与https://katanaproject.codeplex.com/workitem/115有关吗?
请注意,在.AspNet.ApplicationCookie
中,我没有设置Startup.Auth.cs
属性。当我设置该属性时,它的值被尊重,并且上面的方法仍然没有做任何事情。
答案 0 :(得分:2)
这已在2014年4月16日的this commit中修复。
protected override async Task ApplyResponseGrantAsync()
...
DateTimeOffset issuedUtc = Options.SystemClock.UtcNow;
(-) DateTimeOffset expiresUtc = issuedUtc.Add(Options.ExpireTimeSpan);
context.Properties.IssuedUtc = issuedUtc;
(-) context.Properties.ExpiresUtc = expiresUtc;
(+) if (!context.Properties.ExpiresUtc.HasValue)
(+) {
(+) context.Properties.ExpiresUtc = issuedUtc.Add(Options.ExpireTimeSpan);
(+) }
Options.Provider.ResponseSignIn(context);
if (context.Properties.IsPersistent)
{
(+) DateTimeOffset expiresUtc = context.Properties.ExpiresUtc ?? issuedUtc.Add(Options.ExpireTimeSpan);
cookieOptions.Expires = expiresUtc.ToUniversalTime().DateTime;
}