FormsAuthentication允许访问所有页面

时间:2013-06-19 17:56:08

标签: c# web-config forms-authentication

我正在尝试实现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/)由于某种原因将我重定向到登录页面。 如果我重新输入地址栏中的地址,它会把我带到网站主页上(不需要登录,当我到达登录页面时我没有登录,只是重新输入地址栏中的地址)

为什么会这样?

我希望我明确了解情况,如果您需要更多信息,请随时提出。

1 个答案:

答案 0 :(得分:1)

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

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

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

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

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