Potrzebuję pobrać UserId Guid bezpośrednio po pomyślnym zalogowaniu. Poniższy kod nie działa:User.Identity.IsAuthenticated ma wartość false po pomyślnym zalogowaniu
if (Membership.ValidateUser(txtUsername.Value, txtPassword.Value))
{
FormsAuthentication.SignOut();
FormsAuthentication.SetAuthCookie(txtUsername.Value, true);
if (HttpContext.Current.User.Identity.IsAuthenticated)
{
// doesn't run
Guid puk = (Guid)Membership.GetUser().ProviderUserKey;
}
}
Poniższy kod działa:
if (Membership.ValidateUser(txtUsername.Value, txtPassword.Value))
{
FormsAuthentication.SignOut();
FormsAuthentication.SetAuthCookie(txtUsername.Value, true);
MembershipUser user = Membership.GetUser(txtUsername.Value);
if (user != null)
{
Guid puk = (Guid)user.ProviderUserKey;
}
}
Dlaczego tak się dzieje? Czy jest coś więcej oprócz SetAuthCookie
?
Czy istnieje jakiś sposób, aby uzyskać dostęp do tożsamości użytkownika w taki sam wniosek? –
@AhmadAhmadi można ustawić ręcznie przypisując obiekt CustomPrincipal do właściwości użytkownika HttpContext. –
@OleksiiAza Czy możesz zaktualizować odpowiedź, aby pokazać, jak to zrobić? – Jake