2011-11-18 58 views
0

我有最奇怪的情况...ASP.NET应用程序池经常性地注销用户

在我的ASP.NET网站上,当应用程序池回收时用户已注销。这可以。我知道这是假设发生的。但是当用户重新登录并选择网站中的任何链接时,他们会立即退出。他们一直注销。我不知道是什么原因造成的,我不知道如何解决。

奇怪的部分是解决方法。如果我从另一台计算机或从IIS服务器本身登录,而不是登出的用户可以重新登录。

有没有人对发生了什么有什么想法?

回答

0

我发现了这个问题。在ASP.NET配置的安全设置中,登录的每个用户都需要具有在“说明”字段中定义的角色之一。这对我来说很奇怪,但它似乎在伎俩。任何人都知道为什么需要这样做?

3

ASP.NET中的标准表单身份验证基于cookie,不应受会话消失影响。但是,您可能依赖会话中的某些内容来确定用户是否已登录。如果您使用的是进程内会话存储(听起来像您),那么您的应用程序代码可能会出现奇怪的行为,如果您会进入表单身份验证cookie仍然存在并且有效但会话信息丢失的状态。不要去一台不同的电脑,尝试吹走你的cookies并重新登录,我会推测你的问题已经解决。

一步就是转移到进程外会话存储(如ASP.NET状态服务器,这对于几个配置更改很简单)或完全消除会话使用情况(取决于存储的值在Cookie中,尽管存在安全隐患以考虑这些值是否未加密)。然后,仔细查看应用程序代码如何处理设置了登录cookie但会话数据无效的情况。

这是基于提供的信息在黑暗中拍摄的照片,但希望它能让您或其他人走上正确的轨道。

+0

感谢您的帮助......我正在调查此问题。但我有更多的信息。这不是一个不同的计算机或浏览器,它修复了登录用户的问题。我目前正在研究用户之间的不同之处 – dcinadr

+0

登录的用户需要分开.NET授权规则。我不想这样做。用户在数据库中进行管理。我不想每次都将它们添加到配置中。我究竟做错了什么? – dcinadr