2010-01-14 7 views
5

Je rencontre un problème étrange avec l'authentification des formulaires asp.net. Ce problème se produit uniquement pour 3 utilisateurs sur 30+ utilisateurs qui se sont connectés avec succès. J'utilise un code d'authentification très basique que j'ai utilisé plusieurs fois et que je n'ai jamais vu ce problème. Une fois que les utilisateurs se sont correctement authentifiés et que le cookie d'authentification a été créé, un cookie a été ajouté et response.redirect à FormsAuthentication.GetRedirect (ID utilisateur, false) est appelé. La méthode Application_AuthenticateRequest dans Global.asax est atteinte.FormsAuthentication authcookie est nul seulement pour certains utilisateurs

// Extract the forms authentication cookie 
     string cookieName = FormsAuthentication.FormsCookieName; 
     HttpCookie authCookie = Context.Request.Cookies[cookieName]; 

     if (null == authCookie) 
     { 
      // There is no authentication cookie. 
      return; 
     } 

donc immédiatement après un cookie « bon » est enregistré et la redirection se produit le cookie est nul. J'ai exécuté le code à travers le débogueur et le cookie est seulement nul sur ces 3 utilisateurs. Mais le cookie ressemble au cookie pour les nombreux utilisateurs qui se connectent avec succès.

Des idées? C'est un code standard qui devrait fonctionner.

+0

Essayez de reproduire le problème avec Fiddler et voir si cookie auth est réglé. –

+0

Y a-t-il des paramètres sur les ordinateurs des utilisateurs qui pourraient empêcher la création de cookies? – keyboardP

+1

À partir du même ordinateur, mbalkema pouvait se connecter avec succès comme lui-même, mais comme l'un de ces trois utilisateurs, le cookie n'a pas été défini avec succès. Il est pas un problème de leur ordinateur tant que quelque chose se passe bizarre dans le module FormsAuthentication –

Répondre

2

Êtes-vous sûr que le cookie « bon » est enregistré et sort à la réponse? Il est possible FormsAuthentication pour un bon biscuit à ajouter à l'en-tête, mais la réponse est tué à la sortie par une autre erreur du système (w3wp.exe s'écraser par exemple) si une nouvelle réponse est générée sans le cookie et la redirection se produit en tous cas. Dans ma propre expérience avec un problème similaire à celui-ci, j'avais une classe principale personnalisée qui plantait après l'authentification (et la création de cookie) et au lieu d'écrire un cookie approprié, supprimait entièrement le cookie de la réponse.

+0

Merci Joel pour votre réponse. Je n'étais pas exactement comme votre problème, mais votre conseil pour vérifier le cookie après avoir été ajouté à la réponse, mais avant la redirection et authentification authCookie = null dans Global.asax s'est avéré être super utile. Comme il s'est avéré que la longueur de la chaîne de groupes AD ou un caractère dans la chaîne de groupe AD corrompait le cookie. Je n'utilisais pas les groupes de AD donc j'ai juste arrêté de les avoir après l'authentification. Tout fonctionne maintenant. Merci encore. – mbalkema

Questions connexes