我想允许匿名用户只浏览一些文件,如default.aspx,aboutus.aspx,contactus.aspx等。有没有办法在一个地方写下所有这些文件名,否则我将不得不重复以下代码所有文件一次又一次?
<location path="Default.aspx">
<system.web>
<authorization>
<allow users="*" />
</authorization>
</system.web>
答案 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帐户可以访问所有文件。
我不确定你是否想走这条路,因为简单地复制这个位置可能要容易得多。元素多次,对于要向匿名访问公开的每个资源一次。但是,如果您确实想要研究这个问题,那么有一些很好的资源here或here
答案 1 :(得分:0)