【问题标题】:Should I add multiple <location> elements for multiple pages in Web.config file我应该为 Web.config 文件中的多个页面添加多个 <location> 元素吗
【发布时间】:2012-05-07 23:13:09
【问题描述】:

我正在使用Asp.Net/C#,我正在使用基于Roles 的授权来访问我的许多页面。到目前为止,我只有两个页面只能由管理员角色访问。拒绝访问我正在使用的其他角色这在我的 Web.config 文件中。

<location path="CreateAccount.aspx">
    <system.web>
      <authorization>
        <allow roles="Admin"/>
        <deny users="*"/>
      </authorization>
    </system.web>
  </location>

这是针对 page1 的,假设将来我会继续添加更多只有管理员角色才能访问的页面,我该如何管理,我应该在每页添加一个 location 元素还是有办法解决。我知道我可以将它们分组到一个文件夹中,然后为此添加一个 web.config 文件。如果我将来添加许多页面,这是一个更好的方法吗?

感谢您的任何建议。

【问题讨论】:

    标签: c# asp.net web-config roles


    【解决方案1】:

    我可能会选择另一种方式——默认情况下,所有页面都处于最高限制级别(可能是管理员),然后将其他人可以访问的页面列入白名单。这意味着,如果添加了一个页面并且没有更新配置,那么任何不应该看到它的人都无法看到它。

    至于如何做到这一点:是的,在子目录中有一个 web.config 可能是最简单的方法。

    【讨论】:

    • @richokelly 你的意思是把页面组合在一起,然后为它们添加一个 web.config 文件是一种更好的方法。
    • @freebird 在我的经验中是的 - 它减少了开发人员的开销,并且通常会迫使人们进入关于授权的“成功坑”。
    猜你喜欢
    • 2011-06-04
    • 1970-01-01
    • 2013-03-02
    • 1970-01-01
    • 1970-01-01
    • 2011-01-10
    • 2010-12-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多