如何在全球范围内使用OverrideAuthorization来授权MVC中的特定角色不强制对整个程序进行授权?

问题描述

我正在开发一个Web应用程序,我想在其中使用角色在控制器级别实现授权。我计划有多个控制器,大多数控制器利用特定角色进行授权。不过,我的问题是,我还希望拥有一个可以在所有控制器和操作中全局使用的角色。我到底该怎么做?

我看过很多文章以相反的方式锁定事物。例如,我知道您可以转到FilterConfig.cs文件添加如下代码

var response = await _elasticclient.SearchAsync<FileDocument>(
                 s => s.Query(q => q.MultiMatch(c => c
                 .Fields(f => f.Field(p => p.FileName).Field(p=>p.Metadata))
                 .Query(query)
                 ))
                 );

但是我不想这样处理!这样一来,每个操作都必须具有管理员角色。最重要的是,如果我使用此方法,那么在控制器中获得所需的唯一方法就是:

filter.add(new AuthorizeAttribute() {Roles = "Administrator" });

一些控制器我不想使用任何授权,而其他控制器我只需要对一些操作使用授权。如果使用上述全局授权,则必须在每个控制器上都放置此替代项!

是否存在某种特殊的全局覆盖授权,我可以在其中告诉我的程序:“ 无论此控制器或操作使用什么角色,如果用户具有“管理员”角色,则他们可以访问此操作”?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)