私はFlurlと協力して、証明書ベースの認証を必要とするAPIにヒットします。 this SO postから、WebRequestHandler
に証明書を追加し、HttpClient
にこのハンドラを使用するよう指示することは簡単です。C#Flurl - FlurlClientにWebRequestHandlerを追加します。
しかし、Flurlを使用して私にとってはあまり明確ではありません。私は以下の3つのことを試しました。私が最初に私がハンドラを作成し、それがHttpClient
に割り当てますX509HttpFactory : DefaultHttpFactory
自分自身を作成するために必要なことを疑わDefaultHttpFactory
を拡張
。しかし、ソースを見ると、CreateClient
のコンストラクタにはすでにハンドラが必要であることがわかります。このハンドラはどこから来たのですか?これはHttpClient
としてコンパイルされませんDefaultHttpFactory
WebRequestHandler handler = new WebRequestHandler();
handler.ClientCertificates.Add(myX509Cert);
var clientFactory = new DefaultHttpClientFactory();
FlurlClient fc = clientFactory.CreateClient(url, handler);
を使用してクライアントの作成
は、これが最も現実的な選択肢のように思えるFlurlClient
に
使用ConfigureHttpClient
var clientFactory = new DefaultHttpClientFactory();
FlurlClient fc = new Url("foobar.com").ConfigureHttpClient(client => client = clientFactory
.CreateClient(url, handler));
をキャストすることはできません、bu代理人が戻り値のないAction
であるため、私は不明です。
質問
Flurlを使用して、クライアント側の証明書認証をサポートするための最良/正しい方法は何ですか?
感謝。素晴らしいライブラリ! –