2013-11-01 4 views
3

Я работаю в веб-приложении .NET. Я пытаюсь подключиться к Sharepoint Online Premise для получения документов в «Библиотеке документов» с помощью HTTPClient и Sharepoint 2013 REST API.Использование API-интерфейса HTTPClient и Sharepoint 2013 для получения документов

Я тестировал следующие услуги отдыха в браузере для этого,

https://site_url/_vti_bin/ListData.svc/Documents 

, который дает MetaData всех документов, имеющихся в библиотеке документов конкретного веб-сайта.

Теперь, когда я пытаюсь сделать то же самое программно путем добавления ссылки на URL сервиса и с помощью следующего кода,

TestSiteDataContext ctx = new TestSiteDataContext(new Uri("https://site url/_vti_bin/ListData.svc")); 
ctx.Credentials = new NetworkCredential("[email protected]", "test"); 
var data = ctx.Documents.ToList(); 

Я получаю следующее исключение: «Запрос был прерван: Не удалось создать безопасный канал SSL/TLS. " Трассировка стека выглядит следующим образом:

at System.Net.HttpWebRequest.GetResponse() 
    at System.Data.Services.Client.QueryResult.Execute() 
    at System.Data.Services.Client.DataServiceRequest.Execute[TElement](DataServiceContext context, QueryComponents queryComponents) 
    at System.Data.Services.Client.DataServiceQuery`1.Execute() 
    at System.Data.Services.Client.DataServiceQuery`1.GetEnumerator() 
    at System.Collections.Generic.List`1..ctor(IEnumerable`1 collection) 
    at System.Linq.Enumerable.ToList[TSource](IEnumerable`1 source) 
    at SPO_AccessAWebService.Program.Main(String[] args) in Location\Program.cs:line 35 
    at System.AppDomain._nExecuteAssembly(RuntimeAssembly assembly, String[] args) 
    at System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args) 
    at Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly() 
    at System.Threading.ThreadHelper.ThreadStart_Context(Object state) 
    at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx) 
    at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx) 
    at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) 
    at System.Threading.ThreadHelper.ThreadStart() 

Я прошел через различные articles/blogs, чтобы найти решение для this.Bust не мог найти. я мог видеть различные образцы тх показывает аутентификацию с помощью,

ctx.Credentials = CredentialCache.DefaultNetworkCredentials; 

Это также бросает ту же ошибку.

Есть ли другой способ аутентификации API REST SharePoint 2013?

Может кто-нибудь дать мне некоторые идеи для решения этой проблемы?

ответ

0

На основании сообщения об исключении, которое вы сообщаете, похоже, что сертификат SSL недействителен для сайта. Я часто вижу это сообщение в среде разработки или тестирования, где используются самоподписанные центы. Вы можете узнать, не является ли сертификат недействительным, если вам нужно щелкнуть предупреждающее сообщение при посещении URL-адреса в браузере. Чтобы устранить эту проблему, вы можете попробовать подключиться через http, если безопасность транспорта не является проблемой, получить или установить действительный сертификат или импортировать текущий сертификат в хранилище доверенных корневых ресурсов текущего пользователя или локального компьютера.

Смежные вопросы