【问题标题】:Complex solution for maintaining role-based security用于维护基于角色的安全性的复杂解决方案
【发布时间】:2009-09-02 07:57:37
【问题描述】:

在我未来的 Web 应用程序中,会有很多用户角色。根据用户的角色,webapp 应该限制用户对某些信息的访问。我需要实现以下功能:

  • 根据角色,用户应该只看到当前角色和用户可用的列和行(在数据网格中)
  • 根据角色,用户应该以只读或可编辑模式查看页面
  • 根据角色,用户应该在网页上显示/隐藏某些控件

在我以前的应用程序(非常简单)中,使用代码隐藏文件和标记文件中的许多条件运算符解决了此类问题。维护这样的代码非常困难。

我想知道是否有任何复杂的解决方案可以为所有级别的应用程序(数据、逻辑、视图)维护基于角色的安全性,而不会用 IF 弄乱代码。

ps,java 和 .net 平台的解决方案都很有趣

【问题讨论】:

    标签: security roles


    【解决方案1】:

    关于第 1 点:您可以通过封装您的数据访问和过滤加载的行以匹配当前用户的帐户/当前用户的角色来实现这一点。

    我已经在我的数据层中实现了这个机制和一个类似的机制来防止其他用户对行的写访问,这样我就不必在业务层中编写读写访问安全检查。

    【讨论】:

    • 你是如何在 DAO 中实现它的?不喜欢: ? if (userRole == 'admin') {} if (userRole == 'role1') {} .. if (userRole == 'role') {} 如何根据角色渲染视图仍然存在问题
    • 我的数据层基于 LinqToSQL,对于读取,我添加了一个简单的 where 子句来将结果限制为属于该特定用户的行。写入有点复杂,如果没有 Linq,我的方法将无法工作,但也许您可以通过在更新/删除查询中添加额外的 where 子句以及限制行所有者的数据库操作来解决此问题。
    猜你喜欢
    • 2013-03-21
    • 2011-05-12
    • 1970-01-01
    • 2011-08-19
    • 1970-01-01
    • 2012-03-18
    • 2019-03-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多