代码之家  ›  专栏  ›  技术社区  ›  Aaron Daniels

Intranet Web应用程序安全

  •  1
  • Aaron Daniels  · 技术社区  · 16 年前

    是通过配置吗?

    <location path="SecurePage.aspx">
        <system.web>
            <authorization>
                <allow roles="MyDomain\My Secure Users" />
                <deny users="*" />
            </authorization>
        </system.web>
    </location>
    

    结束了吗 code ?

    User.IsInRole(@"MyDomain\My Secure Users");
    

    3 回复  |  直到 16 年前
        1
  •  1
  •   Randolpho    16 年前

    我个人更喜欢声明式方法(即基于位置的web.config方法)。这使得在必要时更容易进行更改,而无需重新部署代码。

    在任何情况下,我都不建议像在示例中那样使用静态字符串调用User.IsInRole();如果您的身份没有更改,请使用web.config声明性方法。

    按照您在上一段中建议的路线走是完全可以的,但我只建议在您的身份验证信息可能频繁更改的情况下使用,即CMS应用程序或类似的情况。

    简言之,我认为在这个问题上没有“最佳实践”;这实际上取决于应用程序。

        2
  •  1
  •   eglasius    16 年前

    没有理由不能同时使用两者。通过web.config进行操作非常简单有效。但始终在角色级别操作。您可以在配置不足的情况下使用代码版本,也可以在希望显示/隐藏UI的特定部分时使用代码版本(还有此版本的控件)。

    更新1:

        3
  •  0
  •   Robin Day    16 年前

    如果变化不大,请使用web.config。

    如果它将要改变很多,那么使用代码方法,但要使用数据库,使其易于修改。

    更多的是对编码实践的一般回答,而不是与安全性相关。