.NET中角色的权限

我使用标准的.NET身份验证数据库表和代码,.NET 4.0,C#和MVC 3。

基本上,我想要角色(包含在框架中),然后能够为这些角色分配权限(据我所知,这些角色不包括在内)。

所以我想给角色分配权限。 会计角色中的用户无法编辑和删除员工,但具有管理员角色的用户可以。 由于这些权限可能会随时更改,而不是检查User.IsInRole("Administrator") ,所以我想要执行类似User.HasPermission("EditEmployee")

我大概可以设计一些自定义表格并编写自己的代码,但是如果它已经内置了,我宁愿使用.NET Framework。 有没有这样的事情? 如果没有,是否有一个图书馆可以做到这一点?


也许你可以简单地将其他角色添加到可以编辑员工的用户。 像“CanEditEmployee”,然后验证用户是否在角色“CanEditEmployee”? 当我必须做类似的事情时,这就是我所做的。


内置的RoleProvider实际上并没有提供一个干净的方式来做到这一点。 真正实现RoleProvider的唯一方法是创建像“Employees_CanEdit”和“Employees_CanAdd”等角色,但最终会出现大量的角色。

不过,还有其他方式可以让角色拥有权限。 您可以创建一个链接用户,角色(“员工”)和权限(“添加”或“编辑”)的表格。 然后你可以实现如下的东西:

public bool HasPermission(string role, string permission) {
    // Some sql for accessing the table
    // return true if a row exists that matches the user, the role, and the permission
}

通常,当我想要做这样的事情时,我使用下划线符号“_”创建子角色,分割了子角色提供的附加权限/功能。

例:

管理员Administrator_EditEmployee Administrator_EnableTasks等...

然后我在我的管理页面中解析这些名称,以便我得到一个格式良好的嵌套树视图/下拉列表,然后我将其分配给不同的用户。 这样,您可以继续使用内置的安全系统,而无需在管理页面中添加任何特殊的分析逻辑。

链接地址: http://www.djcxy.com/p/54127.html

上一篇: Permissions for roles in .NET

下一篇: PowerShell: reading PowerShell Transcript logs