首页 > 解决方案 > 授权属性和角色

问题描述

所以我正在建立一个身份框架。在使用 usermanager 创建角色后,我将角色分配给用户,如下所示:

var roleManager = new RoleManager<IdentityRole>(new RoleStore<IdentityRole>());

if(!await roleManager.RoleExistsAsync("admin"))
    await roleManager.CreateAsync(new IdentityRole("admin"));

var userToAddRole = _userManager.FindByName(userModel.UserName);
_userManager.AddToRole(userToAddRole.Id, "admin");
//_userManager.AddClaim(userToAddRole.Id, new Claim(ClaimTypes.Role, "admin"));
await _userManager.UpdateAsync(userToAddRole);

所有数据库表(如 AspNetRoles AspNetUserRoles)都会正确更新。但是当我尝试访问

[Authorize (Roles = "admin")]
[Route("changepassword")]

未经授权的 401 错误总是随之而来。没有 (Roles = "admin") 它工作正常。如果这很重要,我正在使用 OAuth 不记名令牌授权。

先感谢您

标签: c#asp.netasp.net-identity

解决方案


推荐阅读