我在探索同樣的問題。它採取了一些挖掘,但我找到了一個解決方案。現在,我意識到你具體問了如何應用HttpClientHandler
。我不知道這是否可以做到;但是,您可以申請一個代理。就是這樣。
ActiveDirectoryClient
類提供了一個名爲Context
的DataServiceContextWrapper
屬性,這並不奇怪是DataServiceContext
的包裝。
這很好。它減少了解決如何將代理應用於DataServiceContext
類的問題。我使用了一些我曾坐過的舊代碼,事情幾乎爆炸了。這是因爲我使用了已棄用的SendingRequest
事件來攔截請求並在其出去之前應用代理。此客戶端與已棄用的事件不兼容。
花了多一點的時間去了解如何使用SendingRequest2
事件來完成它;它只需要一點點類型鑄造。
這樣做:
var client = new ActiveDirectoryClient(...);
client.Context.SendingRequest2 += OnSendingRequest2;
// ...
static void OnSendingRequest2(object sender, SendingRequest2EventArgse)
{
var request = ((HttpWebRequestMessage)e.RequestMessage).HttpWebRequest;
request.Proxy = new WebProxy("http://myproxy:port");
}
不這樣做:(它已被廢棄,就會產生異常。)
var client = new ActiveDirectoryClient(...);
client.Context.SendingRequest += OnSendingRequest;
// ...
static void OnSendingRequest(object sender, SendingRequestEventArgs e)
{
e.Request.Proxy = new WebProxy("http://myproxy:port");
}
感謝kbrimington,我很欣賞的努力。我會將其標記爲答案,但我無法及時驗證。 – JohnKoz