2010-07-22 17 views
6

Un client non è in grado di utilizzare la mia webpart perché è dietro un server proxy e devono specificare un nome utente e una password per superare il proxy. Ho questo nel mio file di configurazione in questo momento:Come passare le credenziali nelle impostazioni di configurazione DefaultProxy?

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

C'è un modo per fornire un nome utente e una password per l'impostazione proxy?

risposta

12

Non sono a conoscenza di un modo per farlo nella sezione defaultProxy di web.config, ma si può sicuramente farlo dal codice. Prova questo:

// 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 (sezione di configurazione):

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

E quindi assegnare proxy al WebClient che si sta utilizzando nel vostro WebPart.

EDIT:

Se avessi fatto di più compiti a casa, avrei capito il problema avrebbe potuto essere risolto con un attributo: useDefaultCredentials = "true"

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

Grazie. Ma questo dovrebbe essere le credenziali del mio cliente ... non sono sicuro di poter ottenere la sua password. Ad ogni modo posso aggirare questo? – Prabhu

+0

Codice aggiornato per ottenere correntemente le credenziali dell'utente. –

+0

Pensi che sia possibile impostare l'indirizzo e la porta nella configurazione e aggiungere semplicemente la riga proxy.Credentials nel codice? – Prabhu

Problemi correlati