2009-05-13 10 views
5

Ho una pagina di accesso che utilizza l'appartenenza ASP.NET. Una volta convalidato l'utente, ho bisogno di memorizzare alcuni dettagli su di essi nelle variabili Session. Il problema è cheUser.Identity.IsAuthenticated false until reindirizzato dalla pagina di login

Membership.GetUser() == null and 
User.Identity.IsAuthenticated == false 

fino a quando non ho navigato lontano dalla pagina.

Ho provato con

FormsAuthentication.Authenticate(tbUsername.Text, tbPassword.Text); 

e controllando User.Identity.IsAuthenticated ma sta tornando falso fino a raggiungere un'altra pagina. Eventuali suggerimenti?

risposta

4

Bene, FormsAuthentication.Authenticate() restituisce un boolean, quindi è possibile sapere se l'autenticazione ha avuto esito positivo. In caso affermativo, è possibile passare il nome utente dell'utente a Membership.GetUser() e accedere all'oggetto MembershipUser restituito per acquisire qualsiasi dato necessario e memorizzarlo nella sessione.

if (FormsAuthentication.Authenticate(tbUsername.Text, tbUsername.Text)) { 
    MembershipUser user = Membership.GetUser(tbUsername.Text); 
    // Set session variables here. 
    FormsAuthentication.RedirectFromLoginPage(tbUsername.Text, rememberMe.Checked); 
} 
0

Se non si utilizza il controllo Login, hai provato chiamando FormsAuthentication.RedirectFromLoginPage (authorizedUserName, createPersistantCookie); e poi controllare?

Se si utilizza il controllo di accesso, probabilmente c'è un evento sul controllo è possibile gestire per ottenere i dati necessari, come ad esempio LoggedIn

2

dipende da come il tuo farlo, ma se non si utilizza l'ASP Controllo del login e stai facendo l'auth te stesso hai bisogno di impostare il AuthCookie in questo modo ...

string userName = UserName.Text; 
string password = Password.Text; 

if (Membership.ValidateUser(userName, password)) 
{ 
    FormsAuthentication.SetAuthCookie(userName, true); 

    MembershipUser user = Membership.GetUser(); 

    if(user != null){ 
     // success 
    } 
    else{ 
     // failed 
    } 
} 
Problemi correlati