2009-05-13 5 views
5

Tengo una página de inicio de sesión que usa membresía ASP.NET. Una vez que haya validado al usuario, necesito almacenar algunos detalles sobre ellos en las variables de la Sesión. El problema es queUser.Identity.IsAuthenticated false hasta que se redirija desde la página de inicio de sesión

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

hasta que he navegado fuera de la página.

He intentado usar

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

y comprobando User.Identity.IsAuthenticated pero se está volviendo falsa hasta llegar a otra página. ¿Alguna sugerencia?

Respuesta

4

Bueno, FormsAuthentication.Authenticate() devuelve boolean, por lo que sabrá si la autenticación fue exitosa o no. Si fuera así, puede pasar el nombre de usuario del usuario al Membership.GetUser() y acceder al objeto MembershipUser devuelto para obtener los datos que necesite y almacenarlos en la sesión.

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

Si no está usando el control de sesión, ¿ha intentado llamar FormsAuthentication.RedirectFromLoginPage (authorizedUserName, createPersistantCookie); y luego de eso?

Si está utilizando el control de sesión, es probable que haya un evento en el control que puede manejar para obtener los datos que necesita, como LoggedIn

2

depende de cómo hacerlo, pero si usted no está utilizando el ASP Control de inicio de sesión y usted está haciendo la auth usted mismo, necesita configurar el AuthCookie así ...

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 
    } 
} 
Cuestiones relacionadas