В настоящее время я пытаюсь подключить программу C # к Sharepoint. Что у меня есть: URL-адрес Sharepoint, имя пользователя и пароль, нет Sharepoint.dll (клиентский компьютер, нет пространства имен Microsoft.Sharepoint, поэтому я использую веб-службы Sharepoint), Visual Studio 2010 Ultimate.
Я следовал этому уроку: http://www.scribd.com/doc/8634090/Accessing-SharePoint-Data-Using-C-Without-Running-Code-On-the-SharePoint-Server-Part-1
Что я сделал до сих пор:
добавил «Ссылку на сервис» в мой проект с URL моего ресурса Sharepoint, например
https://.../content/10003194/_vti_bin/lists.asmx
и мой код:
//no TestSP.Lists here...
TestSP.ListsSoapClient cl = new TestSP.ListsSoapClient();
cl.Open();
String listGUID = "A9E7107B-7AF6-42DC-A1A7-6C898D55D23E";
String viewGUID = "684F5F8A-B32E-461C-BD53-677F84A9C101";
//this is where it crashes
System.Xml.Linq.XElement data = cl.GetListItems(listGUID, viewGUID, null, null, "1000", null, "");
IEnumerable<XElement> elements = data.Elements();
foreach (XElement el in elements)
{
Console.WriteLine(el);
}
сбой в указанной строке с:
HTTP-запрос не авторизован по схеме проверки подлинности клиента «Аноним». Заголовок аутентификации, полученный от сервера, был 'Negotiate, NTLM, Basic realm = "..."'
что наиболее вероятно, потому что я не указал имя пользователя и пароль. Различные учебные пособия в Интернете показали, что учетные данные могут быть установлены следующим образом:
TestSP.Credentials = System.Net.CredentialCache.DefaultCredentials;
Проблема в том, что нет TestSP.Lists
, поэтому я использовал TestSP.ListsSoapClient
, в котором нет Credentials
, только ClientCredentials
, которые доступны только для чтения.