Ich versuche, die Identity-Lösung MVC 5 zu verwenden, aber blieb auf etwas, das sehr einfach sein sollte: Ich möchte die Login-Methode auf dem AccountController Erhalte den Namen des angemeldeten Benutzers direkt nach der Validierung des Modells (und ich möchte es nicht aus dem Modell verwenden!).Die Identität von MVC 5 kann den Benutzernamen nicht direkt nach dem Anmelden erhalten
Hier ist ein Stück von meinem Code:
var result = await SignInManager.PasswordSignInAsync(model.Login, model.Password, false, shouldLockout: false);
string NomeUsuario = "";
if (result == SignInStatus.Success)
{
NomeUsuario = User.Identity.Name; //<== getting the logged user's name
}
Das Problem, das ich erhalte, ist, dass diese Eigenschaft null ist.
Nach vielen Tests habe ich etwas Seltsames erkannt: Wenn ich zweimal authentifiziere, wird es im zweiten Durchgang funktionieren. Aber jedes Mal, wenn ich mich abmelde und versuche, mich erneut anzumelden, wird der Name des Benutzers null.
Irgendwelche Hilfe, was ist falsch damit?
Wie beantwortet, können Sie die Forderungen nicht zugreifen, noch die Identität dieser Stelle im Prozess. In diesem Stadium haben Sie wahrscheinlich den Benutzer aus der DB gelesen, so dass Sie wahrscheinlich die Informationen, die Sie benötigen, bereits zur Hand haben. –
Sehen Sie meine Antwort, wie Sie die Identität und alle Ansprüche, die in der Datenbank gespeichert sind, sofort erhalten, ohne nach einer erfolgreichen Anmeldung erneut in die Datenbank zu gehen. –