是否可以允许匿名用户仅浏览文件夹中的少量文件

时间:2012-04-28 21:51:13

标签: asp.net web-config

我想允许匿名用户只浏览一些文件,如default.aspx,aboutus.aspx,contactus.aspx等。有没有办法在一个地方写下所有这些文件名,否则我将不得不重复以下代码所有文件一次又一次?

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

2 个答案:

答案 0 :(得分:2)

无法在单个位置元素中指定多个路径。我想你要做的就是这样:

<location path="Default.aspx,aboutus.aspx,contactus,aspx">
    <system.web>
        <authorization>
            <allow users="*"  />
        </authorization>
    </system.web>
</location>

不幸的是,我不相信这是可能的。

您有多种方法可以做到这一点。

A)多次指定location元素,每个文件对应一个允许匿名访问的文件:

<location path="Default.aspx">
    <system.web>
        <authorization>
            <allow users="*"  />
        </authorization>
    </system.web>
</location>
<location path="aboutus.aspx">
    <system.web>
        <authorization>
            <allow users="*"  />
        </authorization>
    </system.web>
</location>
<location path="contactus,aspx">
    <system.web>
        <authorization>
            <allow users="*"  />
        </authorization>
    </system.web>
</location>

B)将您希望允许匿名访问的所有文件放在一个单独的目录中,如上面提到的Admirer。

C)您可能想要使用文件授权而不是URL授权进行探索。使用文件授权,您可以将Windows ACL权限直接分配给文件。可能可以将要保护的文件分配给一个Windows帐户,也可以将要允许匿名访问的文件分配给另一个ACL帐户。然后,您的任务是使用ASP.Net模拟来映射来自匿名访问请求的请求,以在仅访问未受保护的文件的Windows帐户的安全上下文中执行,并将来自经过身份验证的请求的请求映射到Windows帐户可以访问所有文件。

我不确定你是否想走这条路,因为简单地复制这个位置可能要容易得多。元素多次,对于要向匿名访问公开的每个资源一次。但是,如果您确实想要研究这个问题,那么有一些很好的资源herehere

答案 1 :(得分:0)