我有一个网站在网站范围内使用表单身份验证,一些页面作为例外,允许以匿名访问方式查看它们。我希望通过匿名访问可以查看默认文档index.aspx。如果我在url中指定index.aspx,它授予我访问权限,但如果我只输入域名,我会被重定向到connectionTest.aspx(该站点的登录页面)。我已确认index.aspx是默认文档。因此,我的index.aspx的web配置条目出现了问题
<authentication mode="Forms">
<forms name=".ASPXAUTH" loginUrl="connectionTest.aspx" timeout="30" />
</authentication>
<sessionState mode="InProc" cookieless="false" timeout="30" />
<authorization>
<deny users="?" />
</authorization>
<location path="~/index.aspx">
<system.web>
<authorization>
<allow users="*" />
</authorization>
</system.web>
</location>
<location path="index.aspx">
<system.web>
<authorization>
<allow users="*" />
</authorization>
</system.web>
</location>
答案 0 :(得分:0)
您的问题是因为您没有在表单身份验证上声明domain
。因为身份验证基于cookie而您需要使用前面的www.
访问它,所以您需要将其声明为:
<authentication mode="Forms">
<forms name=".ASPXAUTH" domain="demo.com" loginUrl="connectionTest.aspx" timeout="30" />
</authentication>
当你设置域没有www。在前面,然后来自域的所有cookie都是相同的,如果你没有声明,那么每个cookie都取决于子域并且不同 - 所以你注销了。
同样的立场和自己的饼干。
类似的答案:Multiple applications using same login database logging each other out