7

SharePoint verilerini .Net olmayan bir platformda kullanmak istiyorum. Bu amaçla, zaten Lists.asmx, Webs.asmx ve search.asmx gibi SharePoint OOTB hizmetlerini kullanıyorum. Authentication.asmx kullanarak form tabanlı kimlik doğrulaması için desteği başarıyla ekledim. Şimdi, Office 365 SharePoint için çevrimiçi destek sağlamak istiyorum. Bu amaçla üzerinde çalıştığım bir demo SharePoint Online sitem var. Ben Login.asmx kullanmak ve doğru kullanıcı adı ve parola geçerken Ancak, ben 'PasswordNotMatch' getOffice 365 SharePoint Online OOTB hizmetlerini doğrulama

<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> 

: Karşılıklı Sorun Authentication.asmx şekli yöntemini kullandığımda 'Formlar' yanıtta olsun Hata, aynı kimlik bilgileri tarayıcıda iyi çalışıyor.

<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> 

Not: - Bu, bir FBA olmayan Office 365 SharePoint sitesi için mükemmel çalışır.

Birisi bana Office 365 SharePoint Online OOTB hizmetlerinin desteğini uygulama konusunda bana yardımcı olabilir mi?

cevap

6

Benzer bir fikir içine bakıyordum ve this thread son derece yardımcı oldu. Aslında PInvoke kullanarak bir web servis örneği var, oraya ulaşmanıza yardımcı olabilir.

Düzenleme: aramam beni this other post by Wictor Wilen'a yönlendirdi, ancak şimdilik ClientOM'dan kaçınmaya çalışıyorum.

Edit2: Tamam, bu çalışma var. Yukarıdaki Wictor'dan gelen kodu kullanarak, onun örnek çözümünü indirdim ve projeme "MsOnlineClaimsHelper.cs" ve "WcfClientContracts.cs" i taşıdım, daha sonra bu dosyalardan gerçekten neyin kullanıldığıyla uğraşacağım. Ben sadece onları clientContext_ExecutingWebRequest yöntemi de dahil olmak üzere ClientOM referanslarını kaldırmak için değiştirdim. Bir örnek MVC3 uygulaması veya Konsol uygulamasında

:

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, nasıl SOAP kullanarak Office 365 üzerinde Formu Tabanlı tipiyle doğrulanmış olsun ki? "Authentication.asmx" için kullanıcı adı/parola ile geçerli bir SOAP isteği göndermeyi denedim, ancak "PasswordNotMatch" aldım. – surlac

+1

Emin değil, basit bir şifre mi? Kodlamaya bakıp, şifreleri veya karma bir sürümünü bekleyip beklemediklerini görmek için dokümanlar almaya çalışırdım. –

+1

@ F.Aquino: Wictors Code, Office 365'in birkaç vakasında çalışmaz. Bu hatayı alıyorum "Erişim reddedildi. Bu konumda dosyaları açmadan önce, önce web sitesine göz atmanız ve otomatik olarak oturum açma seçeneğini belirlemeniz gerekir. " – Syeda

İlgili konular