अगर मैं ओपनआईडी और ओएथ शब्द का दुरुपयोग या भ्रमित करता हूं, तो मैं क्षमा चाहता हूं, मैं अभी भी इस संपूर्ण विकेन्द्रीकृत लॉगिन प्रक्रिया के लिए नया हूं।मैं अपनी वेबमैट्रिक्स साइट के साथ ओपनआईडी/ओएथ का उपयोग कैसे शुरू कर सकता हूं?
मैं Google लॉगिन को पहचानने के लिए अपनी साइट (वेबमैट्रिक्स में निर्मित) प्राप्त करने के लिए दिनों के लिए प्रयास कर रहा हूं।
OAuthWebSecurity.RegisterGoogleClient();
लेकिन जब मैं के बाद इस बयान के स्थान पर है इस साइट को चलाने के लिए प्रयास करते हैं, मैं बस एक सर्वर त्रुटि मिलती है: समस्या मैं (मैं क्या पर गौर किया है से) कोड की इस पंक्ति की जरूरत है मेरी _AppStart.cshtml
फ़ाइल में है यह बताते हुए कि वर्तमान संदर्भ में OAuthWebSecurity.RegisterGoogleClient();
मौजूद नहीं है।
मैंने सोचा कि मैं OAuth पुस्तकालय, एक अलग सहायक, या किसी अन्य पैकेज है, लेकिन केवल प्रासंगिक पैकेज मैं देख रहा हूँ (माइक्रोसॉफ्ट वेबपेजों OAuth पुस्तकालय 2.0.20710.0) मैं नहीं मिल सकता की आवश्यकता हो सकती है, क्योंकि WebMatrix 'नहीं करता है NuGet के संस्करण का समर्थन नहीं करता है, यह कहता है कि मुझे (2.0) चाहिए।
मैंने पहले कभी लॉग इन के लिए इस विधि का उपयोग नहीं किया है और मैं सीखना चाहता हूं कि मैं अपने ग्राहकों के लिए यह कार्यक्षमता कैसे बना सकता हूं। मैं नहीं करना चाहता हूं स्टार्टर टेम्पलेट खोलें, और मेरी फाइलों को कॉपी करें। मुझे कोड का उपयोग करने में समस्या है जिसे मैं समझ नहीं पा रहा हूं। मुझे लगता है कि यह मेरे लिए प्रवेश करने के लिए एक भयानक आदत होगी (इससे पहले कि मैं jQuery प्लग-इन का उपयोग भी करूंगा) इससे पहले मुझे कुछ विश्वास दिलाया गया था। यह भी उल्लेख कर सकता है कि मैं इस लॉगिन के लिए किसी अन्य तृतीय पक्ष सेवा का उपयोग नहीं करूँगा। हम अपने कर्मचारियों के कंपनी ईमेल खातों के लिए जीमेल का उपयोग करते हैं, इसलिए मुझे इस समाधान के लिए केवल Google लॉग इन की आवश्यकता है।
बातें मैं कोशिश की है:
- मेरे जैसे अन्य परिदृश्यों के लिए Googling। विफल क्योंकि कोई प्रासंगिक खोज परिणाम पाए जाते हैं
- माइक्रोसॉफ्ट वेबपेजों OAuth पुस्तकालय 2.0.20710.0 पैकेज के पुराने संस्करणों के लिए सर्च कर रहे हैं (जैसे कि, मैं परिणाम है कि मेरे परिदृश्य से मेल खाते हैं करने में असमर्थ हूँ)। विफल रहता है क्योंकि मेरी खोज ऐसे पैकेज नहीं लौटाती है।
OAuthWebSecurity.RegisterOpenIDClient(BuiltInOpenIDClient.Google);
OAuthWebSecurity.RegisterGoogleClient();
के बजाय का उपयोग करते हुए जबOAuthWebSecurity.RegisterGoogleClient();
- विजिटिंग साइट प्रशासन का उपयोग कर और OAuth लाइब्रेरी को डाउनलोड करने के रूप में ही कारण के लिए विफल। विफल क्योंकि NuGet एक अद्यतन
- अद्यतन Nuget क्योंकि यहाँ क्या बताया गया है की विफल जरूरत है (जाहिरा तौर पर, WebMatrix के लिए एक ज्ञात बग):http://forums.asp.net/t/1836913.aspx/1?Error+updating+DotNetOpenAuth+updates+with+NuGet+Gallery
- उद्घाटन अप स्टार्टर साइट टेम्प्लेट, जो पहले से ही OAuth में बनाया गया है और कार्यात्मक। मुझे यह सिखाता है कि यह साइट
OAuthWebSecurity.RegisterGoogleClient()
क्यों पहचानती है और मेरा नहीं है, क्योंकि यह स्पष्ट करने के लिए कोई स्पष्ट तरीका नहीं है (मुझे पता है) कि तीसरे पक्ष के सॉफ़्टवेयर के pacakages, अद्यतन, और/या संस्करण अलग-अलग हो सकते हैं। - एक नई स्टार्टर साइट बनाना और * "App_Data" * और "bin" फ़ोल्डर से किसी भी OAuth आधारित अनुपलब्ध फ़ाइलों की प्रतिलिपि बनाना। उसमें विफलता में कोई व्यवहारिक परिवर्तन नहीं देखा गया था।
----------------------------------------- अद्यतन ----------------------------------------
अब तक, आज तक , इस समस्या के लिए सबसे अच्छा समाधान, कम से कम मेरे लिए, वेबमैट्रिक्स में "स्टार्टर साइट" टेम्पलेट का उपयोग करना है, चाहे मुझे यह पसंद है या नहीं।
ऐसा करने के लिए मेरी सबसे बड़ी चिंताओं में से एक यह था कि, इतनी सारी अपर्याप्त फाइलें थीं कि मुझे यकीन नहीं था कि मैं क्या कर सकता था और साइट को साफ रखने के लिए हटा नहीं सकता था, जबकि OAuthWebSecurity()
कक्षा पूरी तरह से पहुंच योग्य और कार्यात्मक। हालांकि, मैंने "स्टार्टर साइट" टेम्पलेट से केवल "बिन" और "ऐप_Data" फ़ोल्डर (उनकी सभी सामग्री सहित) को रखा है और मेरी फ़ाइलों को स्थानांतरित करने से पहले अन्य सभी चीज़ों (web.config फ़ाइल समेत) हटा दिया है, और यह अब तक मेरे लिए बहुत अच्छा काम करने के लिए दिखाई दिया है।
उपर्युक्त चरणों का उपयोग करके, मैंने अपनी साइट को अनावश्यक कोड साफ़ कर दिया है, जबकि अभी भी OAuthWebSecurity()
कक्षा तक पहुंच है।
भविष्य में (मुझे लगता है कि जब वेबमैट्रिक्स 3 जारी किया जाता है) यह बग शायद तय किया जाएगा और ओएथ लाइब्रेरी के एक साधारण व्यवस्थापक साइट इंस्टॉल को NuGet के संस्करण की आवश्यकता नहीं होगी, जिसे वेबमैट्रिक्स का समर्थन नहीं है, लेकिन तब तक, मेरे लिए सबसे अच्छा जवाब रहा है।
उत्कृष्ट प्रश्न। क्षमा करें मेरे पास कोई विचार नहीं है। – Knox
@ कॉनॉक्स धन्यवाद, सर – VoidKing