2010-07-28 23 views
14

Form kimlik doğrulaması kullanan bir web uygulaması üzerinde çalışıyorum.Form Kimlik Doğrulaması, Web Yük Dengeleyicileri ile çalışır mı?

<authentication mode="Forms"> 
     <forms slidingExpiration="true" 
     loginUrl="~/User.aspx/LogOn" 
     timeout="15" 
     name="authToken" /> 
    </authentication> 
ı giriş yaptıklarında tarayıcımda ayarlanan bu çerez görüyorum

:

alt text

soru Bir yük dengeli modelinde bu web sitesini koymak ne olur? ASP.net oturum çerezi nerede ayarlandı? Açıkça kodda yapmadım, bu yüzden ASP.Net'te bir yerlerde sahnelerin arkasında olduğunu varsayalım. Ayrıca, oturum çerezi web sunucusu A tarafından ayarlanmışsa, B web sunucusunun bunu fark etmeyeceğini ve geçersiz oturum olarak kabul edeceğini varsayalım. Bu durumda, muhtemelen kullanmak istemiyorum, değil mi?

cevap

16

Makine anahtarını aynı olacak şekilde ayarlamanız ve her iki makinede de aynı olması için ad vermeniz gerekir ... eğer bu yapılırsa, form auth ile yük dengelemede sorun yaşanmaz.

 <authentication mode="Forms"> 
     <forms loginUrl="~/Login/Index" defaultUrl="~/" 
        name=".myportal" 
        protection="All" slidingExpiration="true" timeout="20" path="/" 
        requireSSL="false"></forms> 
    </authentication> 

    <machineKey validationKey="534766AC57A2A2F6A71E6F0757A6DFF55526F7D30A467A5CDE102D0B50E0B58D613C12E27E7E778D137058E" decryptionKey="7059303602C4B0B3459A20F9CB631" decryption="Auto" validation="SHA1"/> 

Oturumlar biraz daha karmaşık olabilir. ASP.Net oturum durumunu veritabanında saklayabilir veya yük dengeleme için kullanılabilir hale getirmek üzere paylaşılan bir oturum sağlayıcısı kullanabilirsiniz. http://idunno.org/articles/277.aspx

+0

Ayrıca (makineler arasında yani * değil * 'modu = "inproc" çalışan bir oturum durumu sağlayıcısı kullanıyorsanız emin olmak gerekir: Burada

DB oturum durumunu saklamak iyi bir makale '), ama bunun dışında evet, gayet iyi çalışıyor. –

+0

Ahh ... Gördüğünüz gibi, oturum çerezinin şifrelenmiş bir zaman damgası gibi bir şey olması gerekiyor. Şifreleme/şifre çözme işleminde makine anahtarının kullanıldığını ve bu yüzden aynı olması gerektiğini düşünüyorum. –

+0

Yük dengeleniyorsanız, Oturum modunu = "InProc" kullanamazsınız. Yapışkan oturumlarla bile değil. IIS'de, bir veritabanında saklamanız veya kendi sağlayıcınızı oluşturmanız gerekir. Oturumu IIS'de depolamayı denedim ve gayet iyi çalışıyor. – TheGeekYouNeed

İlgili konular