2010-07-28 5 views
14

मैं प्रपत्र प्रमाणीकरण का उपयोग कर रहे एक वेब अनुप्रयोग पर काम कर रहा हूं।क्या फॉर्म प्रमाणीकरण वेब लोड बैलेंसर्स के साथ काम करता है?

<authentication mode="Forms"> 
     <forms slidingExpiration="true" 
     loginUrl="~/User.aspx/LogOn" 
     timeout="15" 
     name="authToken" /> 
    </authentication> 

मैं इस कुकी को अपने ब्राउज़र में सेट जब मैं लॉगिन दिखाई दे रही है:

alt text

प्रश्न क्या होता है जब मैं एक लोड संतुलित मॉडल में इस वेबसाइट डाल रहा है? ASP.net सत्र कुकी कहां सेट की जा रही है? मैंने कोड में स्पष्ट रूप से ऐसा नहीं किया है, इसलिए मुझे लगता है कि यह एएसपी.Net में कहीं भी दृश्यों के पीछे हो रहा है।

इसके अलावा, यदि सत्र कुकी वेब सर्वर ए द्वारा निर्धारित की जाती है, तो मुझे लगता है कि वेब सर्वर बी इसे पहचान नहीं पाएगा और इसे अमान्य सत्र के रूप में मानता है। यदि यह मामला है, तो शायद मैं इसका उपयोग नहीं करना चाहता, है ना?

उत्तर

16

आपको मशीन कुंजी को समान होने के लिए सेट करना होगा और नाम दोनों मशीनों पर समान होना होगा ... यदि यह किया जाता है तो आपको फॉर्म ऑथ के साथ संतुलन लोड करने में कोई समस्या नहीं होनी चाहिए।

 <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"/> 

सत्र थोड़ा और जटिल हो सकते हैं। आप डेटाबेस में ASP.Net सत्र स्थिति को संग्रहीत कर सकते हैं या लोड संतुलन के लिए इसे उपलब्ध कराने के लिए साझा सत्र प्रदाता का भी उपयोग कर सकते हैं। http://idunno.org/articles/277.aspx

+0

तुम भी सुनिश्चित करें कि आप एक सत्र स्थिति प्रदाता (मशीनों के लिए काम करता है यानी * नहीं * 'मोड =" inproc "उपयोग कर रहे हैं की जरूरत है:

यहाँ डीबी में सत्र स्थिति भंडारण पर एक अच्छा लेख है '), लेकिन इसके अलावा, हाँ यह ठीक काम करता है। –

+0

आह ... मैं देखता हूं, इसलिए सत्र कुकी एन्क्रिप्टेड टाइमस्टैम्प की तरह कुछ होना चाहिए। मुझे लगता है कि मशीन कुंजी एन्क्रिप्शन/डिक्रिप्शन करने के लिए प्रयोग की जाती है और यही कारण है कि इसे वही होना चाहिए। –

+0

यदि आप लोड संतुलन हैं, तो आप मोड = "इनप्रोक" सत्र का उपयोग नहीं कर सकते हैं। चिपचिपा सत्रों के साथ भी नहीं। आपको इसे आईआईएस, डेटाबेस में स्टोर करने या अपने स्वयं के प्रदाता को स्टोर करने की आवश्यकता है। मैंने आईआईएस में सत्र संग्रहित करना लागू कर दिया है और यह ठीक काम करता है। – TheGeekYouNeed

संबंधित मुद्दे