2010-07-22 37 views
6

Un cliente no puede usar mi parte web porque está detrás de un servidor proxy y necesita especificar un nombre de usuario y contraseña para pasar el proxy. Tengo esto en mi archivo de configuración en este momento:¿Cómo pasar las credenciales en la configuración de configuración defaultProxy?

<system.net> 
    <defaultProxy>   
     <proxy usesystemdefault="False" proxyaddress="http://127.0.0.1:8888" bypassonlocal="True" /> 
    </defaultProxy> 
    </system.net> 

¿Hay una manera de suministrar un nombre de usuario y una contraseña para esta configuración proxy?

Respuesta

12

No conozco una forma de hacerlo en la sección defaultProxy de web.config, pero definitivamente puede hacerlo desde el código. Prueba esto:

// Get proxy server info from AppSettings section of Web.Config 
var proxyServerAddress = ConfigurationManager.AppSettings[ "proxyServerAddress" ]; 
var proxyServerPort = ConfigurationManager.AppSettings[ "proxyServerPort" ]; 

// Get proxy with default credentials 
WebProxy proxy =new WebProxy(proxyServerAddress, proxyServerPort); 
proxy.Credentials = System.Net.CredentialCache.DefaultCredentials(); 

Web.Config (sección de configuración):

<appSettings> 
    <add key="proxyServerAddress" value="proxy.myhost.com" /> 
    <add key="proxyServerPort" value="8080" /> 
</appSettings> 

y luego asignar proxy al cliente Web que está utilizando en su parte web.

EDIT:

Si hubiera hecho más tarea, me he dado cuenta de su problema podría haber sido fijado con un atributo: useDefaultCredentials = "true"

<system.net> 
    <defaultProxy useDefaultCredentials="true"> 
     <proxy usesystemdefault="False" proxyaddress="http://127.0.0.1:8888" bypassonlocal="True" /> 
    </defaultProxy> 
</system.net> 
+0

Gracias. Pero esto necesitaría ser las credenciales de mi cliente ... no estoy seguro de poder obtener su contraseña. De todos modos puedo evitar esto? – Prabhu

+0

Código actualizado para obtener las credenciales de usuario registradas actualmente. –

+0

¿Crees que puedo configurar la dirección y el puerto en la configuración y simplemente agregar la línea proxy.Credentials en el código? – Prabhu

Cuestiones relacionadas