dok*_*ker 2 asp.net-core-mvc asp.net-core
我见过的所有教程都向您展示了如何通过添加来保护动作
[Authorize(Policy = "admin")]
Run Code Online (Sandbox Code Playgroud)
控制器或行动.
但是,我不需要抛出错误,而是需要返回浏览器(在json中)问题的答案,如果有人是"管理员",并且没有任何消息来源告诉如何做到这一点.是的,您可以查看声明(User.HasClaim),但政策由多个声明组成.
那我该怎么做?
在控制器的构造函数中,您可以依赖IAuthorizationService authorizationService来注入它.然后,您可以使用它来检查用户是否符合以下策略:
var isAuthorized = await authorizationService.AuthorizeAsync(User, "admin");
Run Code Online (Sandbox Code Playgroud)
其中"admin"是策略的名称
归档时间: |
|
查看次数: |
961 次 |
最近记录: |