加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-mvc – 将角色动态映射到ASP.Net MVC中的控制器

发布时间:2020-12-16 07:15:35 所属栏目:asp.Net 来源:网络整理
导读:我目前在我的MVC应用程序中对过滤器中的授权角色进行硬编码,如下所示: [Authorize(Roles = "Administrator,Manager")] 我想最终有办法将角色映射到每个控制器,以便站点管理员可以处理分配哪些角色可以执行每组操作. string roles = DoSomethingToGetAllowab
我目前在我的MVC应用程序中对过滤器中的授权角色进行硬编码,如下所示:

[Authorize(Roles = "Administrator,Manager")]

我想最终有办法将角色映射到每个控制器,以便站点管理员可以处理分配哪些角色可以执行每组操作.

string roles = DoSomethingToGetAllowableRoles(controllerName);

[Authorize(Roles = roles)]

我想我需要有一个数据库表,以某种方式保存每个控制器的列表,然后另一个表将控制器映射到角色.我想要的是一个页面,我可以列出每个控制器,然后有一组复选框,列出适用于该控制器的每个角色.

任何人都有一个例子,或者可以引导我朝着完成这个目标的方向前进?

解决方法

您将需要编写自己的授权过滤器(可能通过扩展内置的过滤器).

原因是您无法像这样动态分配属性参数.

您不需要与MVC源代码的混乱 – 你只需要建立一个从System.Web.Mvc.AuthrorizeAttribute继承的类,覆盖AuthorizeCore,然后代替默认的使用属性:

public class CustomAuthorizeAttribute : System.Web.Mvc.AuthorizeAttribute
{
    protected override bool AuthorizeCore(HttpContextBase httpContext)
    {
        // Put your custom logic here,returning true for success and false for failure,// or return base.AuthorizeCore(httpContext) to defer to the base implementation
    }
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读