【问题标题】:Is it possible to allow anonymous user to browse only few files from a folder是否可以允许匿名用户仅浏览文件夹中的几个文件
【发布时间】:2012-05-09 05:14:03
【问题描述】:

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

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

【问题讨论】:

    标签: asp.net web-config


    【解决方案1】:

    不可能在单个位置元素中指定多个路径。我认为你要求做的是这样的:

    <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

    【讨论】:

    • 感谢您的回复。这真的很有帮助。
    【解决方案2】:

    【讨论】:

    • 这篇文章很有帮助,但我的问题是如果不隔离在不同的文件夹中就不可能做到这一点。我想将它们保存在一个文件夹中,然后相应地施加限制。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-22
    • 2011-06-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多