2015-04-27 7 views
1

Я пытаюсь использовать службы REST SharePoint 2013 из приложения Desktop (кросс-платформенный, cross-os). Приложение в основном представляет собой HTML-страницу в представлении приложения. Есть ли простой способ аутентификации моих вызовов с помощью методов HTTP?Sharepoint 2013 REST api из настольного приложения - Аутентификация

ответ

0

Да, вы можете пройти аутентификацию и получить дайджест через звонок REST.

string url = "http://Your.SP.Site"; 
 
       HttpClient client = new HttpClient(new HttpClientHandler() { UseDefaultCredentials = true }); 
 
       client.BaseAddress = new System.Uri(url); 
 
       string cmd = "_api/contextinfo"; 
 
       client.DefaultRequestHeaders.Add("Accept", "application/json;odata=verbose"); 
 
       client.DefaultRequestHeaders.Add("ContentType", "application/json"); 
 
       client.DefaultRequestHeaders.Add("ContentLength", "0"); 
 

 
       StringContent httpContent = new StringContent(""); 
 
       var response = client.PostAsync(cmd, httpContent).Result; 
 
       if (response.IsSuccessStatusCode) 
 
       { 
 
        string content = response.Content.ReadAsStringAsync().Result; 
 
        JsonObject val = JsonValue.Parse(content).GetObject(); 
 
        JsonObject d = val.GetNamedObject("d"); 
 
        JsonObject wi = d.GetNamedObject("GetContextWebInformation"); 
 
        retVal = wi.GetNamedString("FormDigestValue"); 
 
       }

Приведенный выше пример показывает, как получить дайджест в C# с HttpClient. Эта строка должна передаваться в виде заголовка ко всем остальным остальным вызовам, которые вы выполняете для переноса аутентификации. Вы можете создать учетные данные, указав при необходимости имя пользователя и пароль.

У меня есть еще примеры здесь:

https://arcandotnet.wordpress.com/2015/04/01/sharepoint-2013-rest-services-using-c-and-the-httpclient-for-windows-store-apps/

Вы можете сделать эти вызовы в JavaScript, а также и Microsoft имеет много документации по этому вопросу. Существует также библиотека .NET, Microsoft.SharePoint.Client.DLL (CSOM), которая упрощает этот тип кодирования, но у вас должна быть установлена ​​библиотека на клиенте.

+0

Извините мое возможное невежество, но как это работает без включения имени пользователя и пароля? Является ли UseDefaultCredentials каким-то образом включать их в заголовок? – eshortie

+0

Вторая строка кода содержит «UseDefaultCredentials = true», так что они есть. Это будет работать только для установок SharePoint, настроенных на использование проверки подлинности Windows, грубых, но учетные данные также могут быть переданы путем создания NetworkCredential. –

+0

Я не использую .NET, так что это немного запутанно. Где именно учетные данные вводятся точно? Являются ли они в определенном формате? – eshortie

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