微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决如何在全球范围内使用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 举报,一经查实,本站将立刻删除。