权限设计

Cie*_*iel 7 linq asp.net-mvc sql-server-2005

我有一个应用程序,其中包含需要为权限设置的内容(即成员/非成员)

我有角色/身份验证设置就好了,这不是我的问题.我的问题基本上是询问存储每个对象权限的最佳方法.基本上有"Guest"和"Member"角色,以及每个对象的简单"Allow""Deny"权限.

有任何想法吗?该程序使用C#,LINQ和MS-SQL 2005在ASP.NET MVC中编写.

Mar*_*ann 7

如果要保护资产(文件,数据库行,域实体,文档等)而不是应用程序功能用户能力,基于角色的安全性不太适合.

更好的模型是使用您从NTFS知道的访问控制列表(ACL).您几乎是自己说的,因为您需要为每个用户或角色分配每个对象的特定权限.这就是ACL的作用.

如果需要保护最终在SQL Server中行的对象,则需要为ACL定义自定义表,因为SQL Server不支持行级权限.

根据这些ACL中的数据,您必须在数据访问组件中实施必要的安全检查.

以下是相关SO答案的一些链接: