2009-09-04 11 views
8

आपने शायद इसे पहले हल कर लिया है।सत्र में कम लोड संतुलन वातावरण में dotNetOpenId को कॉन्फ़िगर कैसे करें

मुझे ऐसे वातावरण में खुली आईडी का उपयोग करने में सक्षम होना चाहिए जिसमें सत्र चिपचिपापन न हो। सर्वर हेडर को संरक्षित करते हैं।

मैं एएसपी.नेट एमवीसी और dotNetOpenId संस्करण 3.2.0.9177 का उपयोग कर रहा हूं। हालांकि प्रतिक्रिया वापस लौटने पर तीसरे पक्ष की वेबसाइट पर प्रमाणीकरण बिना किसी झुकाव के जाता है, मुझे एक त्रुटि मिलती है और प्रमाणीकरण विफल हो जाता है।

कोई विचार?

उत्तर

6

स्टेटफुल

सबसे अनुकूलित विधि एक कस्टम हठ की दुकान है कि "राज़" के लिए IRelyingPartyApplicationStore लागू करता है जो OpenID आर पी एस की आवश्यकता होती है लिखने के लिए, और OpenIdRelyingParty(IRelyingPartyApplicationStore) निर्माता करने के लिए अपने उदाहरण से पारित है, या यह रजिस्टर में है आपके web.config file

स्टेटलेस

एक बहुत आसान समाधान है कि सबसे परिदृश्यों के लिए पर्याप्त होगा बजाय इतना है कि कोई राज्य अपने वेब खेत के सर्वर भर में साझा करने की जरूरत राज्यविहीन मोड का उपयोग करने, है।

आप अपने एप्लिकेशन स्टोर इंस्टेंस के रूप में null को तुरंत चालू करके स्टेटलेस मोड को सक्रिय कर सकते हैं। डिफ़ॉल्ट कन्स्ट्रक्टर को कॉल करने से डीएनओए अपने इन-मेमोरी स्टोर का उपयोग कर सकता है, जो सर्वर फार्म पर टूट जाता है, इसलिए डिफ़ॉल्ट कन्स्ट्रक्टर अपर्याप्त है।

या यदि आप एएसपी.NET नियंत्रणों का उपयोग कर रहे हैं, तो बस नियंत्रण पर Stateless = true सेट करें।

+0

धन्यवाद। ऐसा लगता है कि स्टेटलेस हिस्सा इसे ठीक कर चुका है। –

1

डॉटनेट ओपेनआईडी का उपयोग करके, आप एक कुकी के माध्यम से ग्राहक को प्रमाणीकरण के दौरान आवश्यक स्थिति को जारी रखने में सक्षम होना चाहिए।

संपादित करें: मैं क्योंकि मैं एक सत्र-कम वातावरण में DotNetOpenID का इस्तेमाल किया था कभी नहीं किया है इस के लिए किसी भी उदाहरण कोड की जरूरत नहीं है, लेकिन मैं इस लिंक की जाँच होगी, यह जानकारी की आवश्यकता प्रदान कर सकता है: http://code.google.com/p/dotnetopenid/wiki/WebFarmHowto

+0

मैंने TempData में कुछ रखने के लिए कुछ समान उपयोग किया है, लेकिन DotNetOpenID के लिए कोई कोड उदाहरण है? मैं अभी तक इसके बारे में परिचित नहीं हूँ। धन्यवाद –

+0

मेरे पास हाथ पर कोई कोड उदाहरण नहीं है, लेकिन मैंने जो लिंक प्रदान किया है उसे देखें। – mkchandler

4

यहाँ कैसे हम राज्यविहीन मोड सक्षम करने से रहे हैं:

var uri = new Uri(Request.Url, Request.RawUrl); 
var openid = new OpenIdRelyingParty(null, uri, 
      Request.HttpMethod == "GET" ? Request.QueryString : Request.Form); 

, अब तक काम करने के लिए एंड्रयू प्रति एक छोटा सा प्रदर्शन हिट नहीं है, हालांकि लगता है। सुनिश्चित नहीं है कि लॉगिन के बाद से मामला काफी दुर्लभ गतिविधि है।

+0

यह तीन पैरामीटर कन्स्ट्रक्टर DotNetOpenId 2.x के लिए उपयुक्त है, जबकि स्टेटलेस मोड के लिए एक पैरामीटर कन्स्ट्रक्टर DotNetOpenAuth 3.x के लिए उपयुक्त है। –

+0

धन्यवाद श्री कोडिंग डरावनी/निर्माता के एक-स्टैक ओवरफ्लो। मैं सोमवार सुबह कोशिश करूँगा। –

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