我们有几个需要角色/用户/权限安全模型的项目(ASP.NET MVC)。我们希望将这些数据保存在数据库的表中。如何建议我们使用ASP.NET MVC项目实现这个安全模型?使用自定义authroization属性,通过与数据库中的数据模型交互来确定用户是否获得授权?
是否有第三方/开源选项?
答案 0 :(得分:2)
如果您愿意使用Entity Framework,则会有MVC的EF成员资格提供程序。 这里http://efmembership.codeplex.com/
答案 1 :(得分:1)
我接近这个的方式是反思控制器操作,我仍然使用普通的asp.net成员资格提供程序,但后来有一个存储我所有控制器/操作的操作表。
其次我创建了一个基本控制器并在基本控制器上添加了authorize属性,然后我覆盖了授权“事件”并检查了用户是否有权访问该特定操作,我对onactionexecuting做了同样的事情。 / p>
答案 2 :(得分:0)
我将Rhino Security用于复杂的MVC网站并喜欢它。
http://ayende.com/Blog/archive/2008/01/22/Rhino-Security-Overview-Part-I.aspx
安全通话最终看起来像这样:
permissionBuilderService
.Allow("/[Controller]", 1)
.For("GAAdmins", 1)
.OnEverything()
.DefaultLevel()
.Save();
authorizationRepository.AssociateUserWith(user, "GAAdmins");
if (authService.IsAllowed(user, "/[Controller]/[Action]"))
...;