7

SharePointデータを非Netプラットフォームに使用したいと考えています。私は既にこの目的のためにLists.asmx、Webs.asmx、およびsearch.asmxのようなSharePoint OOTBサービスを使用しています。 Authentication.asmxを使用したフォームベース認証のサポートが正常に追加されました。 今、Office 365 SharePointをオンラインでサポートしたいと考えています。その目的のために、私が取り組んでいるSharePoint Onlineサイトのデモがあります。私が直面しています 問題は、私がAuthentication.asmxのモードメソッドを使用すると、私は反応して「フォーム」を取得している:私はLogin.asmxを使用し、正しいユーザ名とパスワードを渡す際Office 365 SharePoint Online OOTBサービスの認証

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

はしかし、私は取得「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> 

注意:これは、FBA以外のOffice 365 SharePointサイトには最適です。

誰かがOffice 365 SharePoint Online OOTBサービスのサポートを実装するのに手伝ってもらえますか?

答えて

6

私は同様の考えを探しており、this threadは非常に役に立ちました。彼らは実際にPInvokeを使用してWebサービスのサンプルを持っています。

編集:私の検索ではthis other post by Wictor Wilenになりましたが、今のところClientOMを避けようとしています。

Edit2:これはうまくいきました。上記のWictorのコードを使用してサンプルソリューションをダウンロードし、 "MsOnlineClaimsHelper.cs"と "WcfClientContracts.cs"をプロジェクトに移動しました。後でこれらのファイルから実際に使用されているものを手にしています。 clientContext_ExecutingWebRequestメソッドを含むClientOM参照を削除するように変更しました。サンプル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シゲは、どのように私は、SOAPを使用してOffice 365の上でフォームベースのタイプで認証を受けるのでしょうか?私はusername/passwordを "Authentication.asmx"に有効なSOAPリクエストを送信しようとしましたが、 "PasswordNotMatch"を取得しました。 – surlac

+1

わかりません、それは簡単なパスワードですか?私はエンコーディングを見て、次にパスワードやハッシュバージョンを期待しているかどうかを確認するように文書を取得しようとします。 –

+1

@ F.Aquino:Office 365のいくつかのケースでは、Wictors Codeは動作しません。このエラーは「アクセスが拒否されました」というメッセージが表示されます。 " – Syeda

関連する問題