我将ASP.NET MVC添加到现有的WebForms应用程序中。目前,我不关心认证/登录,因为这部分是由现有代码(Forms认证)处理的。ASP.NET MVC3中基于权限的授权
在现有的WebForms应用程序中,我们为每个页面提供了完全自定义的基于权限的授权。因此,每个用户都有一组权限,列出他可以访问的页面。
现在我需要决定如何使用相同的权限系统来限制对特定MVC控制器和操作的访问。
据我所知,对于ASP.NET MVC有一个标准的AuthorizeAttribute我可以指定角色。我也发现了一些文章这表明指定的权限,而不是角色 - 那么它可能做这样的事情:
[CustomAuthorize(Roles = "View products, Edit products")]
通过扩展AuthorizeAttribute,我还可以定义我是如何存储和访问权限。
这个解决方案对我来说是可以接受的(尽管改变角色的语义有点味道)。
但在提交之前,我想看看还有哪些其他选项。这就是我陷入困境的地方 - 我还没有找到关于ASP.NET MVC授权的不同方法的完整概述。我也想知道所有的安全概念(如表单身份验证,成员资格提供者,授权属性,IPrincipal等)是如何相互关联的,以及它们应该如何协同工作。
这是类似于什么在这里尝试:http://stackoverflow.com/questions/10338734/custom-security-scenario-in-asp-net-mvc/ – antijon 2012-04-26 21:42:01
@antijon据我了解,它类似于实现一个自定义的AuthorizeAttribute。但我想更详细地了解其他选项及其优缺点。 – 2012-04-26 21:48:01