Как мога да прочета стойностите на настройките по подразбиране на прокси от секцията system.net в web.config?

Опитвам се да прочета стойностите на моите прокси настройки по подразбиране по време на изпълнение, но не мога да намеря никакъв начин да го направя. Има много свързани отговори за това как да зададете прокси по подразбиране (напр. Как да предам идентификационни данни в настройката за конфигурация на прокси по подразбиране?), но търся как да чета тези настройки.

Причината за това е, че понякога включваме проксито, за да можем да улавяме трафика на сървъра с Fiddler, и искам да създам система за безопасност, която да ме уведомява, ако някой случайно го е оставил в това състояние след затваряне на Fiddler.


person Jay    schedule 21.02.2014    source източник


Отговори (2)


В крайна сметка прочетох стойностите през Configuration manager, а не чрез System.Net.WebProxy:

var proxy = System.Web.Configuration.WebConfigurationManager.GetSection("system.net/defaultProxy") as System.Net.Configuration.DefaultProxySection  
if (proxy != null) { /* Check Values Here */ }

Класът DefalutProxySection има свойства за „Enabled“ и „Proxy.ProxyAddress“, които отговарят на моите нужди.

person Jay    schedule 24.02.2014

Със следната секция web.config:

<defaultProxy useDefaultCredentials="true">
  <proxy usesystemdefault="False" proxyaddress="http://1.1.1.1" bypassonlocal="True" />
</defaultProxy>

Следният код връща информацията за прокси сървъра от уеб конфигурацията:

Uri proxy = WebRequest.DefaultWebProxy.GetProxy(new System.Uri("http://www.google.com"));
person Jamie Pollard    schedule 21.02.2014
comment
Благодаря, Джейми. Това почти направи това, от което имах нужда. Всички свойства на проксито изглеждат налични, но не беше ясно как да проверя дали проксито е активирано или не. Също така, няма ли този метод да инициира уеб заявка към URI? - person Jay; 24.02.2014