我正在使用owin Cookie身份验证来保持用户登录。但我注意到Cookie从客户端浏览器中消失而没有过期。
var identity = new ClaimsIdentity(DefaultAuthenticationTypes.ApplicationCookie);
var properties = new AuthenticationProperties() {
IssuedUtc = DateTime.UtcNow,
ExpiresUtc = DateTime.UtcNow.Add(Startup.CookieAuthenticationOptions.ExpireTimeSpan),
IsPersistent = true
};
HttpContext.Current.GetOwinContext().Authentication.SignIn(properties, identity);
启动:
public class Startup {
public void Configuration(IAppBuilder app) {
CultureInfo.DefaultThreadCurrentCulture = CultureInfo.InvariantCulture;
GlobalHost.Configuration.DefaultMessageBufferSize = 100;
ConfigureCookie(app);
app.MapSignalR();
}
public static CookieAuthenticationOptions CookieAuthenticationOptions { get; private set; }
public void ConfigureCookie(IAppBuilder app) {
CookieAuthenticationOptions = new CookieAuthenticationOptions() {
ExpireTimeSpan = TimeSpan.FromDays(7),
CookieSecure = CookieSecureOption.SameAsRequest,
AuthenticationType = DefaultAuthenticationTypes.ApplicationCookie,
CookieName = "TokenHandler"
};
app.UseCookieAuthentication(CookieAuthenticationOptions);
}
}
有没有人有任何线索?我并不是百分之百确定这一点,但这就是我得到的感觉,因为我现在需要签署更多信息。网站的新版本是否可能导致这种情况?
答案 0 :(得分:1)
假设您确定cookie已正确创建(您可以在浏览器分析器上看到它并且到期日期是正确的),并且您也确信您可以毫无问题地浏览网站... ..
测试:检查您是否仅在关闭浏览器后松开cookie ...如果是这种情况可能是浏览器自行设置的原因。某些设置允许不从" session"到"会话"。