繁体   English   中英

ASP.Net 5身份持久身份验证不工作IIS 7.5空闲计时器

[英]ASP.Net 5 Identity Persisted Authentication Not Working IIS 7.5 Idle Timer

我在MVC6项目上遇到了“记住我”风格复选框的问题。 我在这里有一个相关的问题 ,解决了我在localhost上调试的问题,但是在将项目部署到我们的开发环境后,它仍然迫使我在20分钟后重新登录。

20分钟的时间跨度让我觉得有些东西与IIS配置错误。 我将我的应用程序池(配置为“无托管代码”)空闲计时器设置为1分钟后空闲。 果然,1分钟后,我必须重新登录。

这使我相信,在应用程序池回收后,我的持久身份验证cookie不再被接受为有效(即使我的cookie配置为不会过期10天且SecurityStampValidationInterval设置为10天1分钟。

我在早期版本的.NET中看到了与web.config的机器密钥类似的东西,但是MVC6在web.config中没有一个system.web部分供我放置机器密钥。

我的.NET5项目DNX的目标是完整的.NET框架而不是.NET Core。

您是如何配置数据保护的? 使用IIS和DNX,我们不知道以持久方式存储密钥的位置,除非您加载配置文件,这不是默认配置文件。 因此,一旦您的应用程序终止,用于签署身份验证cookie的所有密钥都将被丢弃。 这在IIS Express中不会发生,因为IIS Express会加载配置文件。

你有几个选择。 您可以在IIS服务器上运行配置脚本以创建ASP.NET可以使用的某些注册表项,也可以配置数据保护以使用文件系统 ,这是您希望运行多个主机时要执行的操作。

编辑

请参阅@ blowdart的答案以获得更好的解决方案。


对于遇到同样问题的人来说,我为此实现的“修复”是将IIS中的空闲计时器设置为0,这意味着永远不会超时。

我仍然在寻找一个真正的解决方案,因为一些托管环境可能不允许将空闲计时器设置为0(通常是共享托管等)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM