2010-01-14 8 views
5

Sto riscontrando uno strano problema con l'autenticazione di moduli asp.net. Questo problema si verifica solo per 3 utenti su oltre 30 utenti che hanno eseguito correttamente l'accesso. Uso un codice di autenticazione molto semplice che ho utilizzato molte volte e non ho mai visto questo problema. Dopo che gli utenti si sono autenticati con successo e il cookie auth è stato creato, viene aggiunto cookie e viene inviato response.redirect a FormsAuthentication.GetRedirect (userid, false). Il metodo Application_AuthenticateRequest in Global.asax viene colpito.FormsAuthentication authCookie è nullo solo per alcuni utenti

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

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

Quindi immediatamente dopo il salvataggio di un cookie "buono" e il reindirizzamento il cookie è nullo. Ho eseguito il codice tramite il debugger e il cookie è nullo solo su questi 3 utenti. Ma il cookie ha lo stesso aspetto del cookie per i molti utenti che hanno effettuato il login con successo.

Qualche idea? Questo è un codice standard che dovrebbe funzionare.

+0

Prova a riprodurre il problema con Fiddler e verifica se il cookie di autenticazione è impostato. –

+0

Ci sono delle impostazioni sui computer degli utenti che potrebbero potenzialmente impedire la creazione di cookie? – keyboardP

+1

Dallo stesso computer, mbalkema potrebbe accedere correttamente come se stesso, tuttavia come uno di questi tre utenti, il cookie non è stato impostato correttamente. Non è tanto un problema del loro computer quanto qualcosa di strano nel modulo FormsAuthentication –

risposta

2

Sei sicuro che il cookie "buono" viene salvato ed esce dalla risposta? È possibile che in FormsAuthentication venga aggiunto un buon cookie all'intestazione, ma la risposta viene eliminata in uscita da qualche altro errore di sistema (per esempio w3wp.exe si blocca) quindi viene generata una nuova risposta senza il cookie e il reindirizzamento si verifica Comunque.

Nella mia esperienza personale con un problema simile a questo, ho avuto una classe Principal personalizzata che si arrestava in modo anomalo dopo l'autenticazione (e la creazione di cookie) e invece di scrivere un cookie appropriato, rimuoveva completamente il cookie dalla risposta.

+0

Grazie Joel per la risposta. Non ero esattamente come il tuo problema, ma il tuo consiglio di controllare il cookie dopo essere stato aggiunto alla risposta, ma prima che il controllo di reindirizzamento e authCookie = null in Global.asax risultasse essere di grande aiuto. Come si è scoperto o la lunghezza della stringa di gruppi AD o un carattere nella stringa del gruppo AD stava corrompendo il cookie. Non stavo usando i gruppi da AD quindi ho appena smesso di averli dopo l'autenticazione. Tutto funziona ora. Grazie ancora. – mbalkema

Problemi correlati