有没有办法扩展ASP.Net Forms身份验证,以便会话可以扩展到iisreset?

Col*_*ell 4 .net asp.net iis asp.net-mvc

我刚刚在另一篇文章上发现了因为我的应用程序没有让用户在iisreset之后登录.

如何解决在我的ASP.Net MVC应用程序中的iisreset之后发生的AntiForgeryToken异常?

我不得不说我同意评论者这是一个人为限制.

从我读到的有关表单身份验证的内容看来,登录的会话信息全部存储在内存中,当服务器重新启动时,您将丢失该信息.

我想做的是简单地将信息存储在某个地方,最好是存储在数据库中,以便我可以继续我的会话.我似乎无法找到任何方法来扩展它来做到这一点.我错过了什么吗?我误解了它是如何工作的吗?

我意识到这是他们给我们的"免费"套件,但我宁愿不自己动手,因为有很多他们做对了,我有可能搞砸我自己的解决方案.

编辑:注意这与会话状态没有任何关系.据我所知,我根本不使用会话状态,除非框架内的某些东西在内部使用它.

我发现身份验证使用了cookie但它们还没有过期.在iisreset之后我仍然会被反弹到登录页面.

Kev*_*Kev 7

听起来像你的问题是,<machineKey /> validationKeydecryptionKey属性被设置为AutoGenerate,这意味着它们在IIS重置之间发生变化.

这意味着加密的持久性表单身份验证cookie在下次出现时将不再有效.

您可以通过手动配置固定validationKeydecryptionKey.为此,请看一下这篇文章:

如何:在ASP.NET 2.0中配置MachineKey

向下滚动到" Web场部署注意事项 "部分并生成加密随机密钥.