3

Sharepoint 2013 Online でカスタマー ポータルを実装しているクライアントがいます。現在のプログラムでは、文書を郵送で顧客に配布しています。ここで、ドキュメントをカスタマー ポータルにアップロードする必要があります。

sharepoint で copy webservice を使用しようとしています。テスト プロジェクトを作成し、Web サービスを Web 参照として追加し、次のテストコードを記述しました。

static void Main(string[] args)
{
    string baseUrl = "https://mycustomer.sharepoint.com/sites/";
    string customer = "customerportalname";
    string serviceUrl = "/_vti_bin/copy.asmx";
    string destinationDirectory = "/folder/";
    string fileName = "uploaded.xml";

    string username = "username@outlook.com";
    string password = "password";

    XmlDocument xmlDocument = new XmlDocument();
    xmlDocument.LoadXml("<fiets><onderdeel>voorwiel</onderdeel><onderdeel>achterwiel</onderdeel><onderdeel>trappers</onderdeel><onderdeel>stuur</onderdeel><onderdeel>frame</onderdeel></fiets>");

    byte[] xmlByteArray;
    using (MemoryStream memoryStream = new MemoryStream())
    {
        xmlDocument.Save(memoryStream);
        xmlByteArray = memoryStream.ToArray();
    }

    string destinationUrl = string.Format("{0}{1}{2}{3}", baseUrl, customer, destinationDirectory, fileName);
    string[] destinationUrlArray = new string[] { destinationUrl };

    FieldInformation fieldInfo = new FieldInformation();
    FieldInformation[] fields = { fieldInfo };


    CopyResult[] resultsArray;

    using (Copy copyService = new Copy())
    {
        copyService.PreAuthenticate = true;
        copyService.Credentials = new NetworkCredential(username, password);
        copyService.Url = string.Format("{0}{1}", baseUrl, serviceUrl);

        copyService.Timeout = 600000;

        uint documentId = copyService.CopyIntoItems(destinationUrl , destinationUrlArray, fields, xmlByteArray, out resultsArray);
    }
} 

コードを実行すると、次のエラーが表示されます。

The request failed with the error message:
--
<html><head><title>Object moved</title></head><body>
<h2>Object moved to <a href="/_forms/default.aspx?ReturnUrl=%2f_vti_bin%2fcopy.asmx">here</a>.</h2>
</body></html>
--

私は認証されておらず、リダイレクトされているようです。ただし、資格情報は正しいです。誰にもアイデアはありますか?前もって感謝します!

アップデート

SharePoint 2013 Online に接続できるようにするには、この投稿で説明されているように、Office 365 認証 Cookie を添付する必要があります。ただし、私の問題は、ADFS も関与していることです。ADFS に対して認証するにはどうすればよいですか?

4

2 に答える 2