在 ASP.NET 中获取 IdentityUserRole 2.0 中的角色名称
Get Role name in IdentityUserRole 2.0 in ASP.NET
在更新 Entity Framework 中的 dll 之前,我能够做到这一点
user.Roles.Where(r => r.Role.Name == "Admin").FisrtOrDefault();
现在,我只能做 r.RoleId,而且我找不到方法来检索角色 ID 的名称。我在我的控制器和我的 AuthorizeAttribute class.
中使用它
有人可以帮我吗?
此致
问 RoleMananger?
RoleManager.Roles.
// or
RoleManager.FindByIdAsync()
// or
RoleManager.FindByNameAsync()
您可能需要花些时间了解 Asp.Net Security and Asp.Net Identity 中的新安全功能。
如果您的目的是检查用户是否在某个角色中,您可以从操作中的 IPrincipal.User 对象访问它
User.IsInRole("Admin");
试试这个
string id = UserManager.FindByEmail(model.Email).Id;
IList<string> roleNames=UserManager.GetRoles(id);
我刚刚 我是这样解决的:
public class UserRole : IdentityUserRole
{
public virtual Role Role { get; set; } // add this to see roles
public virtual User User { get; set; } // add this to see users
}
现在您的原始代码 user.Roles.Where(r => r.Role.Name == "Admin").FirstOrDefault();
可以使用了,如果您出于任何原因无法轻松访问 RoleManager
,这可能会很方便。
在更新 Entity Framework 中的 dll 之前,我能够做到这一点
user.Roles.Where(r => r.Role.Name == "Admin").FisrtOrDefault();
现在,我只能做 r.RoleId,而且我找不到方法来检索角色 ID 的名称。我在我的控制器和我的 AuthorizeAttribute class.
中使用它有人可以帮我吗?
此致
问 RoleMananger?
RoleManager.Roles.
// or
RoleManager.FindByIdAsync()
// or
RoleManager.FindByNameAsync()
您可能需要花些时间了解 Asp.Net Security and Asp.Net Identity 中的新安全功能。
如果您的目的是检查用户是否在某个角色中,您可以从操作中的 IPrincipal.User 对象访问它
User.IsInRole("Admin");
试试这个
string id = UserManager.FindByEmail(model.Email).Id;
IList<string> roleNames=UserManager.GetRoles(id);
我刚刚
public class UserRole : IdentityUserRole
{
public virtual Role Role { get; set; } // add this to see roles
public virtual User User { get; set; } // add this to see users
}
现在您的原始代码 user.Roles.Where(r => r.Role.Name == "Admin").FirstOrDefault();
可以使用了,如果您出于任何原因无法轻松访问 RoleManager
,这可能会很方便。