假设我有WebApi控制器
[Authorize]
public class SomeApiController : ApiController
控制器操作方法本身没有任何 [Authorize]
或 [AllowAnonymous]
属性 .
如果用户没有角色,我希望Authorize属性返回401(未授权)错误 - 似乎是逻辑的(如果用户有角色但现在没有任何 - 即使用户已经过身份验证,也不应允许他执行操作) . 我看过asp.net mvc webstack我在Authorize属性中找到了以下代码:
if (_rolesSplit.Length > 0 && !_rolesSplit.Any(user.IsInRole))
{
return false;
}
所以看起来如果我们没有传递角色authorize属性只检查用户是否经过身份验证 . 在角色列表中设置每个角色对我来说都不是一个选项(我的意思是 [Authorize(Roles="role1,role2,...")]
) .
因此问题 - 我可以以某种方式实现设置Authorize属性来检查用户是否具有任何角色 . 或者最好编写从上面继承的自定义属性?
1 回答
创建如下的自定义属性:
}
希望能帮助到你