我正在使用Asp.Net编写一些API,但在使角色授权起作用时遇到了问题。
这里是我的代码的一部分,只是为了重现问题:
[Route("AddAdminRole")]
public async Task<IHttpActionResult> AddToAdminRole(string userName)
{
// get the currently logged user
var currentUser = await _userManager.FindByNameAsync(
HttpContext.Current.User.Identity.Name);
// check if it's an Admin
var isInRole = _userManager.IsInRole(currentUser.Id, "Admin");
// do stuff
return Ok();
}
当我通过具有Admin角色的用户进行身份验证时,isInRole为true。当我通过标准用户身份验证时,isInRole为false。这当然是预期的结果。
现在,如果我添加以下装饰:
[Authorize(Roles = "Admin")]
并以管理员身份登录并尝试使用该API,但出现错误“该请求的授权已被拒绝”。
我做错了什么? 谢谢 大卫