У меня есть клиент, который внедряет клиентские порталы в Sharepoint 2013 Online. Текущая программа рассылает документы клиентам по почте. Теперь нам нужно загрузить документы на клиентский портал.
Я пытаюсь использовать веб-сервис копирования в sharepoint. Я создал тестовый проект, добавил веб-сервис в качестве веб-ссылки и написал следующий тестовый код:
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 = "[email protected]";
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, необходимо прикрепить файлы cookie для проверки подлинности Office 365, как описано в этот пост. Однако моя проблема заключается в том, что также задействована ADFS. Как я могу пройти аутентификацию в ADFS?