C # / VS2010 / Списки Sharepoint соединяются - PullRequest
1 голос
/ 14 июля 2011

В настоящее время я пытаюсь подключить программу 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, которые доступны только для чтения.

1 Ответ

1 голос
/ 14 июля 2011

Вы, вероятно, использовали новый «Добавить Сервис Ссылка», а не «Добавить Веб Ссылка». Это создает оболочку, похожую на WCF (с суффиксом Client), а не оболочку на основе Soap. Вы можете указать его учетные данные, используя:

TestSP.ClientCredentials.Windows.ClientCredential = CredentialCache.DefaultNetworkCredentials;

«Добавить веб-ссылку» скрыто в Visual Studio 2010. Если вы хотите, вы можете по-прежнему использовать ее для генерации кода, аналогичного вашему учебному пособию , но справочник по услугам также должен работать.

См. Также: ClientBase <>. ClientCredentials


Примечание: если все, что вы делаете, это чтение элементов списка на основе представления, вы можете рассмотреть возможность использования представления XML - Получение данных XML из списка SharePoint . Вы можете легко получить контент, выполнив веб-запрос. У него есть некоторые проблемы с лимитом предметов, но это, как правило, более удобно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...