我在探索同样的问题。它采取了一些挖掘,但我找到了一个解决方案。现在,我意识到你具体问了如何应用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