Удаленный доступ к клиентской объектной модели Sharepoint 2010 через HTTPS

Меня воодушевило то, что клиентская объектная модель Sharepoint 2010, по сути, обертывает удаленные вызовы на сервер. Итак, я скопировал Microsoft.Sharepoint.Client.Silverlight.dll и Microsoft.Sharepoint.Client.Silverlight.Runtime.dll с моего сервера Sharepoint 2010 на мою машину разработки (без Sharepoint). Я предположил, что код Silverlight, который я тестировал на сервере Sharepoint 2010, также будет работать на моей машине разработки. Естественно, я не использую ApplicationContext.Current.Url, потому что я не выполняю в Sharepoint, поэтому я вручную добавляю имя сервера sharepoint следующим образом (сохраняю анонимность для сообщения):

        //ClientContext context = new ClientContext(ApplicationContext.Current.Url);
        ClientContext context = new ClientContext("https://[servername]");
        _web = context.Web;
        context.Load(_web);
        context.Load(_web.Lists);
        context.ExecuteQueryAsync(new ClientRequestSucceededEventHandler  (OnRequestSucceeded), new ClientRequestFailedEventHandler(OnRequestFailed));

Когда я выполняю код, мне предлагается окно проверки подлинности Windows (Sharepoint настроен на использование проверки подлинности Windows), я добавляю свой домен / пользователя и пароль. Однако я получаю следующую ошибку:

Примечание. Мне удалось заставить веб-службы Sharepoint 2010 работать с аналогичной ошибкой, изменив привязку security mode = "Transport" и включив файл clientAccessPolicy.xml на корневой веб-сайт Sharepoint. Нужно ли мне настроить другой каталог Sharepoint для конечной точки клиентской объектной модели?

  • Исключение {System.Security.SecurityException ---> System.Security.SecurityException: ошибка безопасности. в System.Net.Browser.BrowserHttpWebRequest.InternalEndGetResponse (IAsyncResult asyncResult) в System.Net.Browser.BrowserHttpWebRequest. ‹> c__DisplayClass5.b__4 (Object sendState) в System.Net.Browser.Async> sendState --- Конец трассировки стека внутреннего исключения --- в System.Net.Browser.AsyncHelper.BeginOnUI (SendOrPostCallback beginMethod, состояние объекта) в System.Net.Browser.BrowserHttpWebRequest.EndGetResponse (IAsyncResult asyncResultPoint) в MicrosoftClient. ClientRequest.ExecuteQueryGetResponseAsyncCallback (IAsyncResult asyncResult)} System.Exception {System.Security.SecurityException}

person mytwocents    schedule 30.06.2010    source источник


Ответы (2)


Пожалуйста, просмотрите сообщение в блоге ниже, вам нужно добавить файл clientaccesspolicy.xml в корневую папку вашего сайта sharepoint.

http://vangalvenkat.blogspot.com/2011/08/sharepoint-2010-getting-list-item.html

person Venkat Vangalapudi    schedule 09.08.2011

Ага, нашел. Вы можете установить безопасность в контексте клиента, чтобы использовать аутентификацию Windows по умолчанию, например:

using (Microsoft.Sharepoint.Client.ClientContext ctx = new Microsoft.Sharepoint.Client.ClientContext("http://sharepointserver")){

ctx.AuthenticationMode = Microsoft.Sharepoint.Client.ClientAuthenticationMode.Default

} 

Это также должно предотвратить всплывающие окна проверки подлинности Windows.

person mytwocents    schedule 06.07.2010