Próbuję użyć rozwiązania tożsamości MVC 5, ale utknąłem na czymś, co powinno być bardzo proste: Chcę metodę logowania na AccountController do pobierz nazwę zalogowanego użytkownika zaraz po sprawdzeniu poprawności modelu (i nie chcę go używać z modelu!).Korzystając z tożsamości MVC 5, nie mogę uzyskać nazwy użytkownika zaraz po zalogowaniu
Oto fragment mojego kodu:
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
}
Problem, że dostaję to, że ta właściwość ma wartość null.
Po wielu testach zdałem sobie sprawę, że jest coś dziwnego: jeśli dwukrotnie uwierzytelnię, w drugim przejściu zadziała. Ale za każdym razem, gdy się wyloguję i spróbuję ponownie zalogować, otrzyma on pustą nazwę użytkownika.
Jakąkolwiek pomoc w tym, co jest nie tak?
Jak odpowiedział, że nie może uzyskać dostępu do roszczeń, ani tożsamość tym momencie w tym procesie. Jednak na tym etapie prawdopodobnie czytałeś użytkownika z DB, więc prawdopodobnie masz już potrzebne informacje. –
Zapoznaj się z moją odpowiedzią na pytanie, jak szybko uzyskać tożsamość i wszelkie roszczenia przechowywane w bazie danych, bez konieczności ponownej wizyty w bazie danych po pomyślnym zalogowaniu. –