我有最奇怪的情况......
在我的ASP.NET网站上,当应用程序池循环使用时,用户将被注销。这可以。我知道这是假设发生的事。但是当用户重新登录并选择网站中的任何链接时,它们会立即退回。他们一直都退出了。我不知道是什么导致这种情况,我不知道如何解决它。
奇怪的部分是解决方法。如果我从其他计算机或IIS服务器本身登录,则退出的用户可以重新登录。
有没有人对发生的事情有任何想法?
答案 0 :(得分:3)
ASP.NET中的标准表单身份验证是基于cookie的,不应受会话消失的影响。但是,您可能依赖于会话中的某些内容来确定用户是否已登录。如果您正在使用进程内会话存储(并且听起来像是这样),那么您的应用程序代码可能会很奇怪,如果您进入的状态表单身份验证cookie仍然存在且有效但会话信息丢失。尝试吹掉你的cookie并重新登录,而不是去另一台计算机,我会认为你的问题已经解决了。
一步是转移到进程外会话存储(例如ASP.NET状态服务器,它可以很容易地使用一些配置更改)或完全消除会话使用(通过依赖存储的值)但是,如果这些值未加密,则存在安全隐患。然后,仔细查看应用程序代码如何处理设置登录cookie但会话数据无效的情况。
根据所提供的信息,它是在黑暗中拍摄的,但希望它能让你或其他人走上正轨。
答案 1 :(得分:0)
我发现了这个问题。在ASP.NET配置的安全性设置中,每个登录的用户都需要具有“描述”字段中定义的角色之一。这对我来说很奇怪,但它似乎做了伎俩。任何人都知道为什么需要这样做?