7

मैं शेयरपॉइंट डेटा को गैर नेट प्लेटफ़ॉर्म में उपभोग करना चाहता हूं। मैं इस उद्देश्य के लिए पहले से ही SharePoint OOTB सेवाओं जैसे Lists.asmx, Webs.asmx और search.asmx का उपयोग करता हूं। मैंने प्रमाणीकरण.asmx का उपयोग कर फ़ॉर्म आधारित प्रमाणीकरण के लिए सफलतापूर्वक समर्थन जोड़ा है। अब, मैं Office 365 SharePoint ऑनलाइन के लिए समर्थन प्रदान करना चाहता हूं। उस उद्देश्य के लिए मेरे पास एक डेमो SharePoint ऑनलाइन साइट है जिस पर मैं काम कर रहा हूं। समस्या है, मैं का सामना करना पड़ रहा है जब मैं Authentication.asmx की विधि विधि का उपयोग मैं 'फ़ॉर्म' जवाब में मिलता है:प्रमाणीकरण कार्यालय 365 शेयरपॉइंट ऑनलाइन ओओटीबी सेवाएं

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> 
<soap:Body> 
    <ModeResponse xmlns="http://schemas.microsoft.com/sharepoint/soap/"> 
     <ModeResult>Forms</ModeResult> 
    </ModeResponse> 
</soap:Body> 
</soap:Envelope> 

हालांकि जब मैं Login.asmx का उपयोग करें और सही यूज़रनेम और पासवर्ड गुजरती हैं, मैं 'PasswordNotMatch' प्राप्त त्रुटि, वही प्रमाण-पत्र ब्राउज़र में ठीक काम कर रहे हैं।

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> 
<soap:Body> 
    <LoginResponse xmlns="http://schemas.microsoft.com/sharepoint/soap/"> 
     <LoginResult> 
     <ErrorCode>PasswordNotMatch</ErrorCode> 
      <TimeoutSeconds>0</TimeoutSeconds> 
     </LoginResult> 
    </LoginResponse> 
</soap:Body> 
</soap:Envelope> 

नोट: - यह एक एफबीए गैर कार्यालय 365 शेयरपॉइंट साइट के लिए बिल्कुल सही काम करता है।

कोई व्यक्ति कृपया Office 365 SharePoint Online OOTB सेवाओं के समर्थन को लागू करने में मेरी सहायता कर सकता है?

उत्तर

6

मैं एक समान विचार में देख रहा हूं और this thread बेहद सहायक रहा है। वे वास्तव में PInvoke का उपयोग कर एक webservice नमूना है, यह आपको वहाँ जाने में मदद कर सकता है।

संपादित करें: मेरी खोज ने मुझे this other post by Wictor Wilen पर ले जाया, लेकिन अब क्लाइंटम से बचने की कोशिश की।

संपादित 2: ठीक है, यह काम कर रहा है। उपरोक्त विक्टर से कोड का उपयोग करके, मैंने अपने नमूना समाधान को डाउनलोड किया और मेरी परियोजना में "एमएसऑनलाइन क्लाइम्सहेल्पर.cs" और "WcfClientContracts.cs" को स्थानांतरित कर दिया, मैं बाद में इन फ़ाइलों से वास्तव में उपयोग की जाने वाली चीज़ों के साथ झुकाऊंगा। मैंने केवल क्लाइंटॉम संदर्भों को क्लाइंटकॉन्टेक्स्ट_एक्सलेटिंगवेबआरक्वेट विधि समेत हटाने के लिए उन्हें बदल दिया।

एक नमूना MVC3 एप्लिकेशन या कंसोल ऐप्लिकेशन में:

MsOnlineClaimsHelper claimsHelper = new MsOnlineClaimsHelper("https://my365site.sharepoint.com/sites/enterprise/", "[email protected]", "secret"); 

using (var lists = new SharePointLists.Lists()) 
{ 
    lists.Url = @"https://my365site.sharepoint.com/sites/enterprise/_vti_bin/lists.asmx"; 
    lists.CookieContainer = claimsHelper.CookieContainer; 
    var listCol = lists.GetListCollection(); 
    ViewBag.Message = listCol.InnerXml; 
    //Console.Write(listCol.InnerXml); 
} 
+1

@Kuldeep Shige, मैं कैसे Office 365 पर फार्म के आधार प्रकार साबुन का उपयोग कर के साथ प्रमाणीकृत जायेगा? मैंने उपयोगकर्ता नाम/पासवर्ड के साथ "प्रमाणीकरण.asmx" के साथ एक वैध SOAP अनुरोध भेजने का प्रयास किया है, लेकिन "पासवर्ड नॉटमैच" मिला है। – surlac

+1

यकीन नहीं है, क्या यह एक साधारण पासवर्ड है? मैं एन्कोडिंग को देखता हूं और फिर दस्तावेज़ों को यह देखने के लिए प्रयास करता हूं कि वे पासवर्ड या उसके हैंश किए गए संस्करण की अपेक्षा करते हैं या नहीं। –

+1

@ एफ। एक्विनो: विकिक्टर कोड Office 365 के कुछ मामलों में काम नहीं कर रहा है। मुझे यह त्रुटि मिल रही है "एक्सेस अस्वीकृत। इस स्थान में फ़ाइलों को खोलने से पहले, आपको पहले वेब साइट पर ब्राउज़ करना होगा और स्वचालित रूप से लॉगिन करने का विकल्प चुनना होगा। " – Syeda

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