MVC .NET - 是否存在允许基于权限的系统的安全框架

时间:2012-05-01 16:30:49

标签: c# asp.net-mvc-3 security rbac

我是MVC .Net的新手。我想实现一个RBAC系统。我有某些可由某些成员执行的操作/权限。

是否有允许我这样做的安全框架?

更多信息

我正在寻找类似于论坛的东西 - 用户可以发布新帖子,回复他们等。另一方面,主持人应该有权修改帖子,禁止用户等以及提供给普通用户的权限。

我读到.NET框架提供了一个成员资格表。我没有太多关于它的知识,但从我的理解,它只是将用户分组成一定的成员资格。它没有权限的概念。

我是否必须在Membership表的顶部添加另一个图层(似乎我正在重新发明轮子),或者是否有一个框架已经执行此操作。

4 个答案:

答案 0 :(得分:3)

您应该查看Rhino Security - 它允许您定义自己的操作并将权限应用于特定组/用户/等

http://ayende.com/blog/3109/rhino-security-overview-part-i

答案 1 :(得分:0)

了解MembershipRole提供商。它们旨在满足您的要求。

  

角色提供者的基本工作是与数据接口   包含角色数据的源,将用户映射到角色,以及   提供创建角色,删除角色,添加用户的方法   角色等等。 Microsoft .NET Framework的System.Web.Security   namespace包含一个名为RoleProvider的类,用于定义基本类   角色提供者的特征。

答案 2 :(得分:0)

您可以使用成员资格提供程序的角色执行基于安全性的简单权限。您只需定义角色“管理员”,然后根据角色设置权限。

如果您需要更高级的权限(例如allow-deny等等),那么您将需要做更多的工作。

但是,你说你在寻找RBAC(基于角色的访问控制),asp.net有内置的。

答案 3 :(得分:0)

您可以使用成员资格提供程序,但使用起来可能很复杂,而且往往令人困惑。我从一开始就努力工作,成员资格提供商非常适合单点登录(SSO),你有多个应用程序,但只有一个身份验证点。

否则,请使用MVC中的AuthorizeAttribute。您可以对其进行子类化并创建属性的扩展,以完全满足您的需要。