我有两个.NET应用程序,它们有多次需要身份验证的奇怪行为,但每页请求只有一次。所以我会登录,它会带我到看起来像我成功登录的页面,然后当我点击另一个菜单选项时,它会要求我再次登录。有时我点击的每一个不同页面都会要求我登录,但在这样做后我可以访问该页面。如果它没有做那种行为,那么在一段随机时间后它会要求我再次登录。
我还注意到加密数据存储在URL中。
https://www.mydomain.com/myapp/(X(1)S(hr4zvojplikcza2osx4i5ksk))/SomePage.aspx
如果我只输入没有(X(1)S(hr4zvojplikcza2osx4i5ksk)的页面URL),它工作正常,不需要我再次登录。但应用程序根目录中应用程序中的每个链接都以该字符串为前缀。如果我重新启动应用程序池,这个问题也会消失,但是在以后的某个时间,它会再次出现问题。
应用使用表单身份验证。发生了什么,我该如何解决这个问题?
答案 0 :(得分:0)
使用加密的URL代替Authentication Cookie。在web.config中启用Cookieless时会发生这种情况。
您可以在此处找到更多信息:MSDN Cookieless Sessions。在这里:MSDN Authentication。将Cookieless更改为UseCookies。
<authentication mode="Forms">
<forms loginUrl="member_login.aspx"
cookieless="UseCookies"
name=".ASPXFORMSAUTH" />
</authentication>