2017-08-17 4 views
1

Ich versuche, Benutzer auf die in meinem ASP.Net MVC 5.0 App mit der folgenden Funktion AspNetUsers Tabelle programmatisch hinzuzufügen:UserManager.CreateAsync .Success gibt immer false zurück

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); 
    } 
} 

Aber immer, wenn ich rufe this.UserManager.CreateAsync, result.Succeed ist immer falsch. Ich habe die AspNetUsers-Tabelle überprüft und der Benutzer wird wie erwartet nicht hinzugefügt.

Irgendwelche Ideen, wie ich herausfinden kann, was falsch ist und wie man es löst?

Danke.

+0

Überprüfen Sie die Ergebnisfehlermeldung, um herauszufinden, warum das Speichern fehlgeschlagen ist. – Nkosi

Antwort

2

UserManager.CreateAsync gibt eine IdentityResult zurück, die auch Fehler enthalten würde, warum die Aktion nicht erfolgreich war. Sie sollten die Ergebnisfehlermeldungen überprüfen, um herauszufinden, warum die Aktion fehlgeschlagen ist.

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

Danke @Nkosi. Fühle mich blöd, dass ich nicht daran denke, was offensichtlich ein Objekt ist. Ich schaute nur auf den ".Succeed". Wie auch immer, Problem gelöst. Hatte 2 verschiedene Verbindungszeichenfolgen definiert und löschte nur eine der Datenbank. Alle sind sowieso sortiert. Danke noch einmal. – Thierry

0

Sie können versuchen zu fangen, um den tatsächlichen Fehler zu überprüfen.

Nach dem genauen Fehler wird es besser sein, den Versuch catch Block zu entfernen.

+0

Kein Fehler wird ausgegeben. – Thierry

Verwandte Themen