基于角色的MVC4授权

时间:2015-05-10 08:31:00

标签: asp.net-mvc asp.net-mvc-4

我是MVC的新手,想要了解MVC中的身份验证机制

我在SQL,Users表,Roles表和UserRoles表中有这些表,它们将用户id列映射到角色id列。现在,只要我添加一个属性Authorize(Roles =" Customer"),我希望只有拥有客户特权的用户才能访问。现在我要做的是创建这两者之间的联系。我正在寻找一步一步的解释或一个指向我完全做到这一点的链接,因为我发现一些文章在这上面搜索并且无法找到匹配的文章。

提前致谢。

1 个答案:

答案 0 :(得分:0)

如果你采用开箱即用的MVC模板,则无需采取任何措施来强制执行此行为。只要您使用多个表(用户,角色,用户和角色之间的映射,......)启动应用程序,就会为您创建一个数据库。检查web.config以获取连接字符串。

您唯一要做的就是填充ROLES表,然后将这些条目与代码中的Authorize属性进行匹配。因此,如果您在数据库中有一个名为“Admin”的角色,则可以使用以下代码保护您的操作和控制器:

[Authorize(Roles="Administrators")]

您还可以进一步限制用户访问,但我不认为这是最佳做法。接下来,在UI中创建用户,然后将此用户与您在DB中指定的角色相匹配。以此用户身份登录,您将发现您可以访问受限制的操作/控制器。

有关更多信息,他最好的文章是微软自己的文章,如this一个。