Antes de la actualización de los dll en Entity Framework, pude hacer esto
user.Roles.Where(r => r.Role.Name == "Admin").FisrtOrDefault();Ahora, solo puedo hacer r.RoleId, y no puedo encontrar una manera de recuperar el nombre de esa ID de rol. Estoy usando esto en mis controladores y en mi clase AuthorizeAttribute.
¿Puede alguien ayudarme aquí?
Saludos
Prueba esto
string id = UserManager.FindByEmail(model.Email).Id; IList<string> roleNames=UserManager.GetRoles(id);Preguntar al RoleManager ?
RoleManager.Roles. // or RoleManager.FindByIdAsync() // or RoleManager.FindByNameAsync()Es posible que desee tomarse un tiempo y aprender las nuevas características de seguridad en Asp.Net Security y Asp.Net Identity .
Acabo de tener casi exactamente el mismo problema y lo resolví así:
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 } Ahora su código original user.Roles.Where(r => r.Role.Name == "Admin").FirstOrDefault(); funcionará, lo que podría ser útil si no tiene fácil acceso a RoleManager por cualquier motivo.