通过 ASP.NET Identity MVC 的 UserManager 对象可以轻松地获取当前用户所属的角色集合。但是默认情况下,返回的是角色 ID 而非角色名。要获取角色名,可以用以下代码实现:
var user = await UserManager.FindByIdAsync(User.Identity.GetUserId());
var roles = await UserManager.GetRolesAsync(user.Id);
// 获取用户角色名
var roleNames = roles.Select(r => UserManager.FindById(r).Name).ToList();
这段代码首先使用 UserManager 找到当前用户(即 User.Identity.GetUserId())并获取它所属的角色(即 roles)。然后使用 Linq 语句遍历角色列表并获取每个角色对应的角色名,最后以列表形式返回所有的角色名。