基于asp.net mvc3的Web项目自定义安全管理建议

时间:2011-01-24 02:14:58

标签: asp.net-mvc privileges

我有一个使用asp.net mvc3的web项目。现在客户要求安全管理功能。以下是该项目的一些背景信息:

  1. 使用表单身份验证的公共网站。
  2. 客户希望自我管理安全性(包括角色,用户,对资源的操作)。
  3. 用户是项目的域模型。
  4. 访问控制的粒度至少应该达到行动级别(当用户进行未经授权的操作时,将未经授权的页面返回给用户)。但最好根据用户的授权更改视图内容(在视图页面上仅动态显示授权元素)。
  5. 我不太擅长asp.net mvc。我不知道内置成员提供者和角色提供者是否可以满足此要求。但我更喜欢为(资源类别,动作,角色,组等)建立我自己的模型提供者以实现完全控制。但似乎还有其他因素需要考虑缓存,性能或其他因素。

    有人可以就如何实现此功能以及如何将其应用到我的项目中给出一些建议吗?更好的一些示例项目。

    非常感谢

1 个答案:

答案 0 :(得分:1)

我采用的方法几乎归结为访问控制列表,它是一系列,用于表示访问类型和一系列位值。类型操作(读取,插入,修改和删除)。

使用ajax和json通过REST样式API填充整个站点。每个功能都包含一系列权限测试(我缓存访问控制列表)。

示例场景: 用户(管理员)正在访问用户列表。

这将要求对正在执行的代码评估以下Access键和操作:

  • 页面加载:
    • “/用户/列表”
  • REST API访问:
    • “/用户/所有者”
    • “/用户/ NotOwner”

显然,这些条件会与登录用户的指定角色以及与该角色关联的访问控制权限进行比较。

使用存储在数据库中的访问列表和权限,用户可以更改为哪些角色分配的访问项和操作。

因为您要为用户提供修改这些关联的能力,所以为每个访问控制项添加说明非常有用。

祝你好运!