我对 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
(只有角色表中存在的用户才能访问系统。其他人拒绝访问。)
请让我知道如何根据存储在数据库中的角色在方法级别使用身份验证。