在更新实体框架中的dll之前我能够做到这一点
INNODB_BUFFER_POOL_SIZE
现在,我只能做r.RoleId,而我无法找到一种方法来检索thar Role Id的名称。我在我的控制器和AuthorizeAttribute类中使用它。
有人可以帮助我吗?
此致
答案 0 :(得分:8)
RoleManager.Roles.
// or
RoleManager.FindByIdAsync()
// or
RoleManager.FindByNameAsync()
您可能需要花一些时间来了解Asp.Net Security和Asp.Net Identity中的新安全功能。
答案 1 :(得分:8)
试试这个
string id = UserManager.FindByEmail(model.Email).Id;
IList<string> roleNames=UserManager.GetRoles(id);
答案 2 :(得分:1)
如果您的目的是检查用户是否在角色中,您可以在操作中从IPrincipal.User对象访问它
User.IsInRole("Admin");
答案 3 :(得分:0)
我刚刚almost exactly the same issue,我解决了这个问题:
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
,这可能很方便。