2010-08-04 4 views
0

Dans mon MasterPage code-behind j'essaie d'obtenir UserID de l'authentification (si elle a) un:Est-ce que "Context.User" peut être une valeur nulle?

public Guid CurrentUserID 
    { 
     get 
     { 
      Guid userID = new Guid(); 
      if (Context.User.Identity.IsAuthenticated) 
      { 
       MembershipUser user = Membership.GetUser(Context.User.Identity.Name); 
       userID = (Guid)user.ProviderUserKey; 
      } 
      return userID; 
     } 
    } 

Une fois l'erreur « référence d'objet non définie à une instance d'un objet » apparaît. Je suspecte que le problème est dans le cas Context.User = null. Serait-ce la raison?

+0

Avez-vous joint un débogueur et confirmé votre suspicion? Peut-être que 'Identity' est nul. – leppie

+0

Malheureusement, l'erreur a été écrit par notre propre rédacteur sur le site publié et une seule fois. En mode débogage je n'ai jamais atteint l'erreur – landless

+0

Avez-vous implémenté votre propre fournisseur d'appartenances? – onof

Répondre

0

Peut-être que l'utilisateur a été supprimé par le db alors qu'il a été authentifié, donc Membership.GetUser retourné null et user.ProviderUserKey a jeté NullReferenceException.

+0

Oui, cela semble logique mais ce n'est pas le cas. Probablement le fichier cookie a été supprimé. Serait-ce la raison? – landless

+0

si le cookie est supprimé, l'utilisateur n'est plus authentifié. – onof

Questions connexes