2017-08-17 1 views
1

Je suis en train d'ajouter des utilisateurs à la table programme AspNetUsers dans mon application ASP.Net MVC 5.0 en utilisant la fonction suivante:UserManager.CreateAsync .success renvoie toujours false

private async Task AddUser(DataImportMember member) 
{ 
    var user = new ApplicationUser 
    { 
     UserName = member.Email, 
     Email = member.Email, 
     UserType = UserType.IsMember 
    }; 

    var password = RandomPassword.Generate(); 
    var result = await this.UserManager.CreateAsync(user, password); 
    if (result.Succeeded) 
    { 
     await this.UserManager.AddToRoleAsync(user.Id, MyApp.IsMember); 
    } 
} 

Mais chaque fois que j'appelle this.UserManager.CreateAsync, result.Succeed est toujours faux. J'ai vérifié la table AspNetUsers et comme prévu, l'utilisateur n'est pas ajouté.

Des idées comment je peux comprendre ce qui ne va pas et comment le résoudre?

Merci.

+0

Vérifiez le message d'erreur de résultat pour savoir pourquoi l'enregistrement a échoué. – Nkosi

Répondre

2

UserManager.CreateAsync renvoie un IdentityResult qui contient également des erreurs pour lesquelles l'action n'a pas abouti. Vous devriez vérifier les messages d'erreur de résultat pour savoir pourquoi l'action a échoué.

var result = await this.UserManager.CreateAsync(user, password); 
if (result.Succeeded) { 
    await this.UserManager.AddToRoleAsync(user.Id, MyApp.IsMember); 
} else { 
    var errors = result.Errors; 
    var message = string.Join(", ", errors); 
    ModelState.Add("", message); 
} 
+0

Merci @Nkosi. Sentez-vous stupide que je n'ai pas pensé à regarder dans ce qui était évidemment un objet. Je viens de regarder le '.Succeed'. Quoi qu'il en soit, le problème a été résolu. Avait 2 chaînes de connexion différentes définies et supprimait seulement une des bases de données. Tous triés de toute façon. Merci encore. – Thierry

0

Vous pouvez mettre try catch pour vérifier l'erreur réelle. Après avoir obtenu l'erreur exacte, il est préférable d'enlever le bloc try catch.

+0

Aucune erreur n'est générée. – Thierry