2012-12-19 5 views
7

में कस्टम ओथ प्रदाता के साथ OAuth मैं एमवीसी 4 में एक साधारण वेब एप्लिकेशन लिख रहा हूं, और मैं OAuth with Trello चाहता हूं ताकि मैं उपयोगकर्ता को अपने ट्रेलो विवरण के साथ लॉग-इन करने के लिए कह सकूं और फिर उनके कुछ कार्ड देख सकूं ।एमएवी 4

क्या कोई भी ऑउथ प्रदाता बॉक्स के गैर-आउट का समर्थन करने के लिए कस्टम ओथ प्रदाता बनाने के बारे में जानकारी प्रदान कर सकता है? मैं जो देख सकता हूं, उससे मैं सोचता हूं मुझे एक कस्टम ओउथ प्रदाता (उपclass IAuthenticationClient बनाने और उस का उपयोग करने की आवश्यकता है) - क्या यह सही है?

+0

क्या आपको कभी भी कस्टम प्रदाताओं को जोड़ने का समाधान मिला? – Billdr

उत्तर

11

ठीक है, मैंने अपनी टिप्पणी के बाद से 11 घंटे बिताए हैं क्योंकि एसओ के लिए एक कस्टम ओथ क्लास लिख रहा है। कल मुझे बिक्री बल में से एक करना है। मैं उत्साहित नहीं हूँ।

यहाँ मैं क्या किया है:

  1. अपने उम्मीद JSON/XML के लिए एक DataContract वर्ग बनाएँ। मैं आगे बढ़ गया और एसओ लौटने वाली हर चीज को लागू किया, लेकिन अगर आप केवल प्राधिकरण कर रहे हैं तो आप शायद इसे आईडी और डिस्प्लेनाम में काट सकते हैं।

  2. एक कक्षा बनाएं जो OAuth2Client को DotNetOpenAuth.AspNet.Clients से बढ़ाती है। उदाहरण के लिए DotNetOpenAuth GitHub page का उपयोग करें। यह सबसे लंबा और सबसे दर्दनाक कदम है, खासकर यदि आपका जेसन सीरियलाइजेशन जंगली है।

  3. /App_Start/AuthConfig.cs खोलें और RegisterAuth() अनुभाग में OAuthWebSecurity.RegisterClient(new YourClass(Your, Initalization, Params), "The Name You Want to Show Up On Your oAuth Login Button", ExtraDataIfYouNeedIt; दर्ज करें। मैंने स्थापित नहीं किया है कि एक्स्ट्राडाटा परम क्या है, लेकिन मुझे इसके मामले में इसकी आवश्यकता नहीं थी। उम्मीद है कि आपको इसकी आवश्यकता नहीं होगी।

संपादित करें: अद्यतन जिथब लिंक।

+1

'एक्स्ट्राडाटा' सिर्फ एक 'IDictionary' ऑब्जेक्ट है; आप जो भी चाहें उसके लिए इसका इस्तेमाल कर सकते हैं। जब मैं उपलब्ध प्रदाताओं को सूचीबद्ध करता था तो मैंने कुछ सीएसएस कक्षाओं को बांधने के लिए इसका इस्तेमाल आंशिक दृश्य में करना चाहता था। अच्छा काम, बीटीडब्ल्यू। –

+1

शानदार, धन्यवाद। मुझे ऐसा करने का मौका नहीं मिला है क्योंकि मुझे अन्य मुद्दों पर ले जाया गया है, लेकिन मैं जल्द ही इसे देखने का इरादा रखता हूं, इसलिए मैं आपके द्वारा किए गए कार्यों पर एक नज़र डालूंगा और वापस आऊंगा! –

+2

पुराना धागा, लेकिन ध्यान दें कि DotNetOpenAuth पृष्ठ इस पर स्थानांतरित हो गया है: https://github.com/DotNetOpenAuth/DotNetOpenAuth – Joe