如何在aspnet核心的代码中验证用户agains策略?

时间:2017-04-05 12:42:03

标签: asp.net-core asp.net-core-mvc

我见过的所有教程都向您展示了如何通过添加

来保护动作
[Authorize(Policy = "admin")]

到控制器或行动。

但是,如果有人是“管理员”,我需要返回浏览器(在json中)问题的答案,而不是抛出错误。 并没有消息来源告诉你如何做到这一点。 是的,您可以查看声明(User.HasClaim),但政策由多个声明组成。

那我该怎么做?

1 个答案:

答案 0 :(得分:6)

在控制器的构造函数中,您可以依赖IAuthorizationService authorizationService来注入它。然后,您可以使用它来检查用户是否符合以下策略:

var isAuthorized = await authorizationService.AuthorizeAsync(User, "admin");

其中“admin”是政策的名称