यह स्पष्ट नहीं है कि 'वेब सेवा' के साथ आपका क्या मतलब है और आप वर्तमान में उपयोगकर्ता नाम और पासवर्ड कैसे प्राप्त करते हैं। यदि वह किसी प्रकार की वेबसाइट है जहां उपयोगकर्ता को लॉगिन करने या क्रेडेंशियल्स पास करने की आवश्यकता होती है, तो आपको ब्राउज़र से ओएथ 2 अनुदान शुरू करना होगा क्योंकि क्लाइंट ब्राउज़र को implicit grant या code grant शुरू करने के लिए प्राधिकरण अंतराल पर रीडायरेक्ट करना होगा। उपयोगकर्ता को कोड या एक्सेस टोकन (अनुदान के आधार पर) लॉग इन करने के बाद OAuth2 सर्वर (और आपके एप्लिकेशन में नहीं) पर एक लॉगिन स्क्रीन प्रस्तुत की जाएगी, जिसे आप ExchangeService
कन्स्ट्रक्टर में उपयोग कर सकते हैं ।
यदि वह 'वेब' सेवा कुछ कंप्यूटर है जो उपयोगकर्ता कंप्यूटर पर चलती है तो आप नीचे वर्णित विधियों में से एक का उपयोग कर सकते हैं।
प्राप्त AccessToken AuthenticationContext
उदाहरण लगता है का उपयोग कर AuthenticationContext
वर्ग के एक पुराने संस्करण के आधार पर किया जाना है।
other version, नए हो रहा है भी AcquireToken
अब AcquireTokenAsync
/AcquireTokenSilentAsync
नाम दिया गया है।
कोई फर्क नहीं पड़ता कि आप किस संस्करण का उपयोग कर रहे हैं, आप अपने वर्तमान कोड में उपयोगकर्ता नाम और पासवर्ड पास नहीं कर पाएंगे। हालांकि, आप उपयोगकर्ता को क्रेडेंशियल के लिए AcquireToken[Async]
विधि संकेत दे सकते हैं। जो, ईमानदार बनें, अधिक सुरक्षित है और फिर अपने एप्लिकेशन को उन उपयोगकर्ता रहस्यों से सीधे निपटने दें। आपके जाने से पहले, आप डेटाबेस में सादे पाठ पासवर्ड संग्रहीत करेंगे (आशा है कि आप पहले से नहीं हैं)।
दोनों संस्करणों में, उन विधियों में विभिन्न पैरामीटर और थोड़ा अलग कार्यक्षमता के साथ बहुत अधिक अधिभार हैं। अपने यूज-केस के लिए मुझे लगता है कि इन दिलचस्प हैं:
शीघ्र व्यवहार ऑटो, दोनों vesions में , का अर्थ है: उपयोगकर्ता को क्रेडेंशियल के लिए कहा जाएगा जब वे पहले से ही कैश नहीं किए गए हैं। AuthenticationContext
दोनों रचनाकार आपको टोकन-कैश पास करने की अनुमति देते हैं, जो कुछ आप स्वयं को कार्यान्वित कर सकते हैं f.e. स्मृति फ़ाइल, फ़ाइल या डेटाबेस में टोकन कैश करने के लिए (उदाहरण फ़ाइल कैश कार्यान्वयन के लिए this article देखें)।
AccessToken जाओ मैन्युअल
तुम सच में उपयोगकर्ता को संकेत दिए बिना कोड से उपयोगकर्ता क्रेडेंशियल में पास करना चाहते हैं, वहाँ हमेशा के चारों ओर एक रास्ता है।इस मामले में आपको OAuth2 विशिष्टता/RFC6749 में उल्लिखित Resource Owner Password Credentials grant को लागू करना होगा।
संयोग या नहीं, मैं अगर आप इस मार्ग आपको लगता है कि कोड में खुदाई कर सकते हैं जाने के लिए, विशेष रूप से this method से शुरू करना चाहते हैं, oauth2-client-handler
कहा जाता है एक खुला स्रोत पुस्तकालय है कि HttpClient
साथ प्रयोग के लिए इस को लागू करता है, लेकिन वैसे भी।
उपयोग पहुंच टोकन
जब आप पहुंच टोकन है, तो आप this MSDN page पर नमूने के साथ आगे बढ़ सकते हैं, f.e .:
var service = new ExchangeService(exchangeVersion)
{
KeepAlive = true,
Url = new Uri("some autodiscovery url"),
Credentials = new OAuthCredentials(authenticationResult.AccessToken))
};
ईडब्ल्यूएस के लिए ओथ की जांच करते समय एक और चीज आई, यह केवल कार्यालय 365 के लिए उपलब्ध है, न कि एक्सचेंज सर्वर के लिए। https://msdn.microsoft.com/en-us/library/office/dn903761(v=exchg.150).aspx कहता है कि "ईडब्ल्यूएस के लिए ओथ प्रमाणीकरण केवल Office 365 के हिस्से के रूप में एक्सचेंज में उपलब्ध है। ईडब्ल्यूएस अनुप्रयोगों की आवश्यकता होती है "उपयोगकर्ता के मेलबॉक्स" अनुमति "तक पूर्ण पहुंच। – tavier
दुर्भाग्यवश कोई भी लिंक ईडब्ल्यूएस प्रबंधित एपीआई के साथ काम करने के तरीके के बारे में बात नहीं करता है। प्रश्न में पोस्ट किया गया msdn url उपयोगकर्ता को प्रमाणित नहीं करता है, लेकिन क्लाइंट को अधिकृत करने के लिए यह – tavier
है क्या आपने https://blogs.technet.microsoft.com/ronba/2016/05/09/using-powershell पर देखा है -और-द-ऑफिस -365-आराम-एपी-साथ-ओथ /? – Eris