首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基于角色的自定义授权(无成员资格)

基于角色的自定义授权(无成员资格)
EN

Stack Overflow用户
提问于 2012-11-05 14:28:33
回答 1查看 6.5K关注 0票数 3

我对MVC和使用WindowsMVC4开发应用程序非常陌生。为了进行身份验证,我在域中使用ASP.NET身份验证和Active Directory。下一步是授权用户(不使用成员资格)。浏览了几篇文章,仍然找到了一种好的方法。

我有自己的3个数据库表(UsersRolesUserRoles)来维护几个管理员级别的授权用户。这是多对多。例如,可能有"admin“(具有create权限的系统的完全访问权限)、"data operator”(仅针对某个部分的更新权限)和"support user“(只读/只查看访问权限)。因为这是多对多-用户可以是“支持用户”也可以是“数据输入操作员”。

对于特定的部分,我需要基于方法来控制访问。例如,假设有一个名为"InvoiceController“的控制器。可能有如下方法。

代码语言:javascript
复制
CreateNewInvoice() // Accessible only by admin

UpdateInvoice(...) // Accessible for admin and data operator

ViewInvoice(...) // Accessible for admin, data operator and support user

(只有存在于角色表中的用户才能访问系统。其他人的访问被拒绝。)

请让我知道如何根据存储在数据库中的角色在方法级别使用身份验证。

EN

回答 1

Stack Overflow用户

发布于 2012-11-05 14:41:27

您可以通过两种方式完成此操作:

创建在其中加载和检查角色的自定义AuthorizeAttribute

但更好的解决方案是创建自定义IPrincipal/IIdentity并在Application_OnPostAuthenticateRequest中分配它。通过这样做,您可以充分利用内置的授权模型,而无需进行进一步的自定义。

在这里看我的答案:https://stackoverflow.com/a/10949178/70386

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13227012

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档