FormsAuthentication允许访问所有页面

本文关键字:访问 许访问 FormsAuthentication | 更新日期: 2023-09-27 18:19:00

我正试图实现FormsAuthentication,但我得到了一点奇怪的行为。这些是web.config中的行:

  <authentication mode="Forms">
     <forms loginUrl="/contentpages/login.aspx" name="SiteAuth" protection="All" timeout="30" path="/" defaultUrl="/" requireSSL="false" cookieless="UseCookies" enableCrossAppRedirects="false" />
  </authentication>
  <authorization>
     <allow users="?" />
  </authorization>

所以,如果我做对了,这应该允许所有匿名用户访问根目录和它下面的页面。

由于某种原因,访问网站主页(http://www.sample.com/)将我重定向到登录页面。如果我在地址栏中重新输入地址,它会像预期的那样把我带到网站主页(不需要登录,我到达登录页面时没有登录,只是在地址栏中重新输入地址)

为什么会发生这种情况?

我希望我已经说清楚了情况,如果你需要更多的信息,请随时提问。

FormsAuthentication允许访问所有页面

您看到这个功能可能是因为您没有指定位置。试一下:

<location path="your folder">
    <system.web>
    your authorization
    </system.web>
</location>

另一个问题可能是如何授予权利。"?"针对所有未经身份验证的用户。如果您试图简单地授予所有用户访问权限,那么最好使用"*"。

同样重要的是要注意这些规则是级联的。因此,您可以添加多个规则来微调访问。例如,如果我想授予一组特定用户访问权限,而拒绝其他用户访问,我会使用:

<authorization>
    <allow roles="administrators" />
    <deny users="*" />
</authorization>