首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >有没有办法扩展ASP.Net窗体身份验证,以便会话可以扩展到iisreset之后?

问有没有办法扩展ASP.Net窗体身份验证,以便会话可以扩展到iisreset之后?
EN

Stack Overflow用户
提问于 2010-02-05 21:16:32
回答 2查看 842关注 0票数 5

我刚刚在另一个帖子上被pinged了,因为我的应用程序在iisreset之后不能让用户保持登录。

How do I solve an AntiForgeryToken exception that occurs after an iisreset in my ASP.Net MVC app?

我不得不说,我同意评论者的观点,即这是一种人为的限制。

从我读到的关于Forms身份验证的内容来看,登录的会话信息似乎都存储在内存中,当服务器重新启动时,您会丢失这些信息。

我想要做的是能够简单地将这些信息存储在某个地方,最好是存储在数据库中,这样我就可以继续我的会话。我似乎找不到任何方法来扩展它来做到这一点。我是不是遗漏了什么?我是不是误解了它的工作原理?

我意识到这是他们提供给我们的“免费”套件,但我不想自己滚动,因为他们有很多正确的地方,而我有可能搞砸我自己的解决方案。

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

我意识到身份验证使用了cookie,但它们尚未过期。不过,我仍然会在iisreset之后跳转到登录页面。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-02-05 21:53:42

听起来你的问题是,<machineKey />、validationKey和decryptionKey属性被设置为AutoGenerate,这意味着它们会在IIS重置中发生变化。

这意味着加密的持久窗体身份验证cookies在下次出现时将不再有效。

您可以通过手动配置固定的validationKey和decryptionKey来修复此问题。要做到这一点,看看这篇文章:

How To: Configure MachineKey in ASP.NET 2.0

向下滚动到"Web Farm Deployment Considerations“部分,并生成加密随机密钥。

票数 8
EN

Stack Overflow用户

发布于 2010-02-05 21:20:57

身份验证会话和“会话状态”(跟踪防伪令牌的位置)在ASP.NET中是两个完全独立的东西。

Authentication由浏览器中的cookie跟踪(通常),因此不会受到iis重新启动的影响。

默认情况下,会话状态存储在内存中(在内存中,它将被重启杀死),但可以轻松地存储在SQL Server或专用的状态服务器进程中(这两个进程都可以在iis重启后恢复)。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2207394

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档