2010-01-14 33 views
5

Asp.net form kimlik doğrulamasıyla ilgili garip bir sorun yaşıyorum. Bu sorun, yalnızca oturum açmış 30'dan fazla kullanıcının 3 kullanıcısı için oluşur. Çok kez kullandığım ve bu sorunu hiç görmediğim çok temel kimlik doğrulama kodunu kullanıyorum. Kullanıcılar başarıyla doğruladıktan ve kimlik doğrulama bilgisi oluşturulduktan sonra, çerez eklendi ve FormsAuthentication.GetRedirect (userid, false) adresine response.redirect denir. Global.asax'ta Application_AuthenticateRequest yöntemi vuruldu.FormsAuthentication authCookie sadece bazı kullanıcılar için boştur

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

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

Yani hemen "iyi" bir çerez kaydedilir ve yönlendirme çerez null oluşur sonra. Kod hata ayıklayıcısını kullanarak çalıştırdım ve çerez bu 3 kullanıcı için yalnızca boş. Ancak, çerez, başarıyla giriş yapan birçok kullanıcı için çerezle aynı şekilde görünüyor.

Herhangi bir fikrin var mı? Bu sadece çalışması gereken standart koddur.

+0

Sorunu Fiddler ile yeniden oluşturmayı deneyin ve kimlik doğrulama bilgisi ayarlanıp ayarlanmadığına bakın. –

+0

Kullanıcı bilgisayarlarında, herhangi bir çerezin oluşturulmasını engelleyebilecek herhangi bir ayar var mı? – keyboardP

+1

Aynı bilgisayardan mbalkema kendi başına başarıyla giriş yapabilir, ancak bu üç kullanıcıdan biri olarak, çerez başarıyla ayarlanmadı. FormsAuthentication modülü –

cevap

2

"İyi" çerezin kaydedildiğinden ve yanıttan çıktığından emin misiniz? FormsAuthentication'da, üstbilgiye eklenecek iyi bir tanımlama bilgisi için olasıdır, ancak yanıt, başka bir sistem hatasıyla (örneğin, w3wp.exe çöküyor) çıkış yolu üzerinde öldürülür ve böylece tanımlama bilgisi olmadan yeni bir yanıt oluşturulur ve yönlendirme gerçekleşir neyse.

Buna benzer bir sorunla ilgili deneyimlerimde, kimlik doğrulama (ve çerez oluşturma) sonrasında kilitlenen özel bir Yönetici sınıfına sahiptim ve uygun bir tanımlama bilgisi yazmak yerine, çerezi yanıttan tamamen kaldırdım.

+0

Cevabınız için teşekkürler Joel. Ben tam olarak senin sorunun gibi değildi, ama cevabına ekledikten sonra ama kontrol etmek için tavsiyem önce ama yönlendirme ve authCookie = null kontrol Global.asax süper yardımcı olmak için çıktı. AD grup dizesinin uzunluğunun ya da AD Grup dizesindeki bir karakterin ortaya çıkmasıyla çerez bozuldu. Grupları AD'den kullanmıyordum, bu yüzden kimlik doğrulamasından sonra onları durdurmayı bıraktım. Her şey şimdi çalışıyor. Tekrar teşekkürler. – mbalkema

İlgili konular