Добавить элемент списка с использованием веб-службы в качестве текущего пользователя - PullRequest
2 голосов
/ 18 ноября 2011

Я могу успешно добавить элемент списка в список с помощью веб-приложения asp.net. Однако в поле «Создано» хранится имя сервера, а не текущий пользователь, посещающий сайт.

Сервер A размещает мое веб-приложение asp.net. Пользователь посещает сайт, нажимает кнопку, которая добавляет элемент на сервер B, на котором размещен сайт SharePoint. У меня нет доступа к серверу B, поэтому я использую веб-сервис.

Вот мой текущий код:

webreference.Lists myList = new webreference.Lists();  
//have also tried DefaultNetworkCredentials   
myList.Credentials = System.Net.CredentialCache.DefaultCredentials;    
myList.Url = "http://site/_vti_bin/lists.asmx";    
XmlDocument doc = new XmlDocument();    
XmlElement batch = doc.CreateElement("Batch");   
batch.SetAttribute("OnError", "Continue");   
batch.InnerXml = "<Method ID='1' Cmd='New'>" +   
"<Field Name='Title'>Test</Field>" +    
"</Method>";    
myList.UpdateListItems("{LIST GUID}", batch);

1 Ответ

1 голос
/ 19 ноября 2011

Я считаю, что для передачи таких учетных данных между уровнями вам необходимо использовать Kerberos для делегирования.В противном случае DefaultCredentials будет нулевым.Это известно как проблема двойного перехода NTML.Посмотрите этот пост на форумах MSDN, где парень предлагает изменить NTAuthenticationProviders .

...