2010-05-27 7 views
0

J'ai une application dans laquelle j'ai intégré une fonction "Se souvenir de moi" pour l'écran de connexion. Je le fais en créant un cookie lorsque l'utilisateur se connecte pour la première fois, donc la prochaine fois que l'utilisateur visite le site, j'obtiens le cookie et charge les informations de l'utilisateur.Erreur de référence d'objet même lorsque l'objet n'est pas nul

J'ai écrit le code pour charger les informations utilisateur dans une classe commune dans le dossier App_Code ... et toutes mes pages héritent de cette classe.

Code

pour charger les informations de l'utilisateur est comme suit:

public static void LoadUserDetails(string emailId) 
{ 
    UsersEnt currentUser = UsersBL.LoadUserInfo(emailId); 

    if (currentUser != null) 
     HttpContext.Current.Session["CurrentUser"] = currentUser; 
} 

Maintenant, le problème est que je reçois une erreur « référence Object » lorsque je tente de stocker l'objet currentUser dans la variable de session (même si le currentUser l'objet n'est pas nul). Toutefois, la propriété de mot de passe dans l'objet currentUser est null.

Est-ce que je reçois l'erreur à cause de cela ... ou y at-il une autre raison?

merci

Répondre

6

En supposant qu'il est la dernière ligne qui est à l'origine du problème, qui suggère que soit HttpContext.Current ou HttpContext.Current.Session est nulle. Je vous suggère de savoir de quoi il s'agit, puis de déterminer pourquoi.

2

HttpContext.Current.Session est probablement null.

Le code qui utilise l'état doit être placé après l'appel de l'événement AcquireRequestState. Voir le page lifecycle pour plus d'informations. Essayez d'insérer votre code après ou à l'intérieur de la méthode Page_Load.

0

Si elle jette l'exception sur la ligne:

HttpContext.Current.Session["CurrentUser"] = currentUser; 

la seule autre explication est que HttpContext.Current.Session est nulle.

Questions connexes