Identidade do asp.net MVC 5 userManager.IsInRole
O código a seguir não funciona e não sei explicar por que ... Meu gerente de usuários está causando problemas significativos, pois cria usuários e funções muito bem, mas quando executo esse código, userManager.IsInRole sempre retorna falso, portanto, o segundo Quando executo minha semente, estou encontrando erros porque está tentando criar o registro, apesar do fato de ele já existir!
Observe que isso está ocorrendo quando estou executando o banco de dados de atualização no meu projeto de migração; o fato de este não ser um projeto ASP está causando problemas; se sim, por que? não deve ser gerado um erro.
Este é o primeiro projeto que usei o Identity e, embora pareça bom, há muito pouca documentação atualizada de boa qualidade disponível; portanto, se alguém tiver alguma fonte para isso, ficaria grato.
public void Run(BlogContext blogContext)
{
var userStore = new UserStore<User>((BlogContext) blogContext);
var userManager = new UserManager<User>(userStore);
var userRoles = new List<UserRole>()
{
new UserRole() {Username = "[email protected]", Role = "SysAdmin"},
new UserRole() {Username = "[email protected]", Role = "Admin"},
new UserRole() {Username = "[email protected]", Role = "Author"}
};
foreach (var userRole in userRoles)
{
var userId = userManager.FindByName(userRole.Username).Id;
if (!userManager.IsInRole(userId, userRole.Role))
userManager.AddToRole(userId, userRole.Role);
}
blogContext.SaveChanges();
}