2016-11-07 14 views
1

Я пытаюсь использовать DalSoft.RestClient, чтобы сделать приятные звонки на внутреннюю службу, для которой требуются сетевые учетные данные (для моего варианта использования учетных данных по умолчанию).Как передать учетные данные с помощью DalSoft.RestClient?

Конструктор для RestClient обеспечивает перегрузку для передачи в IHttpClientWrapper, который я мог бы использовать для обработки учетных данных, но надеюсь, что есть решение из коробки для передачи учетных данных RestClient.

Как передать учетные данные DalSoft.RestClient?

ответ

2

Для любых учетных данных, заданных с помощью заголовка, такого как basic или oauth, вы можете использовать методы заголовков. Пример oauth2 однонаправленного знак:

dynamic client = new RestClient("http://localhost/"); 
client 
    .Headers(new { Authorization = "Bearer " + bearerToken }) 
    .MyResource 
    .Get(); 

Если вы говорите или NTLM Kerberos в данный момент не существует никакого способа сделать это, но, как вы предложили вы можете реализовать IHttpClientWrapper, чтобы сделать это. Странно Credentials передаются HttpClient с использованием HttpClientHandler. Ниже приведен пример того, как сделать это:

HttpClientHandler handler = new HttpClientHandler(); 
handler.Credentials = new NetworkCredential(); 
HttpClient client = new HttpClient(handler); 

Я понимаю реализации IHttpClientWrapper просто сделать это не является идеальным, так что если вам нужна эта функциональность, я буду смотреть на добавление его в CTOR. Это будет выглядеть следующим образом:

HttpClientHandler handler = new HttpClientHandler(); 
handler.Credentials = new NetworkCredential(); 
new RestClient("http://localhost/", new Config(handler)); 

Update это теперь поддерживается в 3,0

+0

Спасибо за чтение моего ума о Kerberos и NTLM, потому что да, это то, что я имел в виду, когда я сказал, сеть учетных данных. Было бы неплохо, если бы это было обработано путем создания «RestClient» с HttpHandler с идентификационной информацией в нем. Я создал [проблему на GitHub] (https://github.com/DalSoft/DalSoft.RestClient/issues/14), чтобы запросить добавление этой функции, как указано выше. – ahsteele

+2

Спасибо @ahsteele Я реализовал эту функцию. – DalSoft