2016-11-07 7 views
1

DalSoft.RestClientを使用して、ネットワーク資格情報(私の場合はデフォルトの資格情報)が必要な内部サービスを安らかに呼び出しようとしています。DalSoft.RestClientで資格情報を渡すにはどうすればよいですか?

のコンストラクタのコンストラクタは、処理する資格情報を実装できるIHttpClientWrapperで過負荷を提供しますが、資格情報をRestClientに渡すためのすぐれた解決策があることを願っています。

資格情報をDalSoft.RestClientに渡すにはどうすればよいですか?

答えて

2

基本またはoauthなどのヘッダーを介して設定された資格情報の場合は、ヘッダーメソッドを使用できます。 OAuth2ベアラトークンの例:

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

あなたは、現時点ではKerberosまたはNTLMについて話している場合はこれを行う方法がないが、あなたは、あなたがこれを行うにはIHttpClientWrapperを実装することができます示唆されているように。不思議なことに、HttpClientHandlerを使ってCredentialがHttpClientに渡されます。以下は、これを行う方法の一例です:

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)); 

それは私がネットワークの資格言ったとき、私は何を意味だそうので、これは現在3.0

+0

でサポートされてアップデートがKerberosとNTLMについての私の心を読んでいただきありがとうございます。これが、 'RestClient'をHttpHandlerで認証情報とともに構築することによってこれが処理されれば、いいでしょう。私は[GitHubに関する問題](https://github.com/DalSoft/DalSoft.RestClient/issues/14)を作成して、この機能をabovedのアウトラインとして追加するよう要求しました。 – ahsteele

+2

ありがとう@ahsteele私はこの機能を実装しました。 – DalSoft

関連する問題