我在ASP.NET MVC6应用程序中使用cookie身份验证。我的配置如下:
app.UseCookieAuthentication(options =>
{
options.CookieName = "ow.2a";
options.ReturnUrlParameter = "r";
options.AuthenticationScheme = "TwoFactor";
options.ExpireTimeSpan = TimeSpan.FromHours(4.0);
options.SlidingExpiration = true;
options.AccessDeniedPath = new PathString("/login");
options.LoginPath = new PathString("/login");
options.AutomaticAuthenticate = true;
options.AutomaticChallenge = true;
});
这是我的登录代码:
await HttpContext.Authentication.SignInAsync("TwoFactor",
new ClaimsPrincipal(new ClaimsIdentity(new[]
{ new Claim(ClaimTypes.NameIdentifier, user.Id.ToString()) }, "Password")),
new AuthenticationProperties { IsPersistent = true, ExpiresUtc = DateTime.UtcNow.AddHours(4.0) });
我注意到每隔一段时间(大约15分钟),我就会注销。我已按照以下说明将应用程序托管在IIS上。该问题似乎与dnx进程重新启动有关。我可以理解在一段时间不活动后关闭此过程,但是不知道为什么身份验证cookie会变得无效。有想法吗?
身份验证cookie被加密。除非您运行文档中提到的配置脚本;
要保留数据保护密钥,必须为每个应用程序池创建注册表配置单元以存储密钥。您应该为将在其下托管ASP.NET 5应用程序的每个应用程序池使用Provisioning PowerShell脚本。
或者您已在代码中手动配置了数据保护,则密钥将保留在内存中,并在应用停止时被丢弃。因此,您是否遵循了说明中的所有步骤?:)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句