我想弄清楚如何在身份框架中查找用户角色名称。
我的配置是,只有一个角色分配给用户。
所以,我尝试使用
public string GetUserRole(string EmailID, string Password)
{
var user = await _userManager.FindAsync(EmailID, Password);
var roleid= user.Roles.FirstOrDefault().RoleId;
}
但我得到的只是 RoleId 而不是 RoleName。
谁能帮我找到用户的 RoleName?
在你的代码中,user
对象代表AspNetUsers
具有导航属性的表Roles
这代表了AspNetUserInRoles
表而不是AspNetRoles
桌子。
所以当你尝试浏览时
user.Roles.FirstOrDefault()
它给你AspNetUserInRoles
其中存储 UserId 和 RoleId。
相反你可以尝试UserManger
's GetRoles
方法将返回你List<string>
已分配用户的角色。但正如您所提到的,它只是一个角色,因此您可以从结果中获取第一个值GetRoles
method.
您的函数应该类似于下面给出的函数:
public async string GetUserRole(string EmailID, string Password)
{
var user = await _userManager.FindAsync(EmailID, Password);
string rolename = await _userManager.GetRoles(user.Id).FirstOrDefault();
return rolename;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)