表单身份验证不适用于特定页面

时间:2012-05-02 14:40:23

标签: c# asp.net .net web-config forms-authentication

我似乎无法隔离我的论坛,为他们设置不同于网站其他部分的权限。

以下是我网站的设置。

<location path=".">
  <system.web>
    <authentication mode="None" />
  </system.web>
</location>

我需要隔离我的论坛。目前,出于测试目的,我进行了设置,以便拒绝所有用户访问。

<location path="~/public/public-forum.aspx">
  <system.web>
    <authentication mode="Forms">
      <forms loginUrl="public/login.aspx" />
    </authentication>
    <authorization>
      <deny users="*" />
    </authorization>
  </system.web>
</location>

我发现我仍然可以访问论坛页面。这表明我没有正确设置。

路径属性是否必须是相对的?是否必须指向访问该页面的URL或重写的路径? ~/public/public-forum.aspx是一个被重写的虚拟路径,因此直接或文件都不存在这些名称。为什么这个目前不起作用?

我希望这个解决方案足够详细。

1 个答案:

答案 0 :(得分:0)

EDIT2: 所以解决方案不仅仅在评论中: 据我所知,您无法为每个位置指定身份验证模式 您可以在整个站点中设置表单身份验证模式,并且只需要在安全部分中登录用户。

编辑:
嗯,很奇怪,你确定你只编辑了〜走了吗? 他们讨论你的问题here,但我无法想象如何改变〜会触发它。
你可以发布整个web.config吗?
另外:你使用的是iis 6和虚拟目录吗?

不需要〜符号,试试这个:

<location path="public/public-forum.aspx">
  <system.web>
    <authentication mode="Forms">
      <forms loginUrl="public/login.aspx" />
    </authentication>
    <authorization>
      <deny users="*" />
    </authorization>
  </system.web>
</location>
相关问题