【发布时间】:2012-10-24 23:42:49
【问题描述】:
我对 MVC 很陌生,并且使用 ASP.NET MVC 4 开发应用程序。对于身份验证,我在域中使用带有 Active Directory 的 Windows 身份验证。下一步是授权用户(不使用会员资格)。浏览了几篇文章,仍然找到了一个好的方法。
我有自己的 3 个数据库表(Users、Roles、UserRoles)来维护具有多个管理员级别的授权用户。这是多对多。例如,可能有“管理员”(具有创建权限的系统的完全访问权限)、“数据操作员”(仅针对某个部分的更新权限)和“支持用户”(只读/仅查看访问权限)。由于这是多对多 - 用户可能是“支持用户”以及“数据输入操作员”。
对于特定部分,我需要根据方法控制访问。例如,假设有一个名为“InvoiceController”的控制器。可能有以下方法。
CreateNewInvoice() // Accessible only by admin
UpdateInvoice(...) // Accessible for admin and data operator
ViewInvoice(...) // Accessible for admin, data operator and support user
(只有角色表中存在的用户才能访问系统。其他人拒绝访问。)
请告诉我如何根据存储在数据库中的角色在方法级别使用身份验证。
【问题讨论】:
标签: c# asp.net-mvc-4 authorization