Я изучал ту же проблему. Потребовалось некоторое рытье, но я нашел решение. Теперь, я понимаю, вы спросили, как применять HttpClientHandler
. Я не знаю, можно ли это сделать; однако вы можете применить прокси-сервер. Вот как.
ActiveDirectoryClient
класс предоставляет DataServiceContextWrapper
Context
свойство, которое, не удивительно, что обертка к 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