我想在web.config中授予默认文档匿名访问权限

时间:2016-06-24 13:25:11

标签: c# asp.net iis

我有一个网站在网站范围内使用表单身份验证,一些页面作为例外,允许以匿名访问方式查看它们。我希望通过匿名访问可以查看默认文档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>

1 个答案:

答案 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