拒绝除asp.net中“〜/”路径以外的所有页面的匿名

时间:2011-10-10 13:54:23

标签: c# asp.net authentication authorization membership

在asp.net中,我使用此配置部分拒绝所有页面的匿名用户。

<authentication mode="Forms">
  <forms loginUrl="~/Account/LogOn" timeout="2880" />
</authentication>
<authorization>
  <deny users="?" />
</authorization>

并使用以下内容声明匿名可以访问的异常。

<location path="Welcome.aspx">
  <system.web>
    <authorization>
      <allow users="*" />
    </authorization>
  </system.web>
</location>

对我来说很好。

但是,我如何才能将默认页面设置为例外? (例如:匿名者只能访问http://mysite/,但无法访问网站中的任何其他页面?)

我试过使用location path =“〜/”或“/”而它不起作用。

2 个答案:

答案 0 :(得分:3)

如果path="Default.aspx"不起作用,则无法使用配置完成。没有语法可用于仅在路径属性中指定应用程序根目录。

答案 1 :(得分:0)

我认为您可以更改文件夹结构来实现此目的。然后,您可以将web.config更改为拒绝用户

<configuration>
    <system.web>
        <authorization>
            <allow roles="administrators" />
            <deny users="?" />
        </authorization>
    </system.web>
</configuration>