0

我正在尝试实施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/ ) 会将我重定向到登录页面。如果我在地址栏中重新输入地址,它将按预期将我带到网站主页(无需登录,我进入登录页面时没有登录,只是在地址栏中重新输入了地址)

为什么会这样?

我希望我能说明情况,如果您需要更多信息,请随时询问。

4

1 回答 1

1

您可能会看到此功能,因为您没有指定位置。试试这个:

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

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

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

<authorization>
    <allow roles="administrators" />
    <deny users="*" />
</authorization>
于 2013-06-19T18:36:08.967 回答