2009-04-02 52 views

Respuesta

44

asignar un nuevo NetworkCredential instancia a la propiedad Credentials:

webClient.Credentials = new NetworkCredential("Mehrdad", "Password"); 
+1

Esto no funcionó para mí, pero el establecimiento de la "Autorización" de cabecera de forma explícita con la información de autenticación básica de la respuesta de ikutsin hizo el trabajo para mí. – markshep

+1

Ambos métodos (credenciales y agregar encabezado) son trabajos. Pero realmente no entiendo cuál es mejor y por qué? – Archont

3

También es posible autenticar automáticamente. Esto usará las credenciales del usuario actualmente conectado.

webClient.Credentials = CredentialCache.DefaultCredentials 
21

ejemplo de autenticación básica:

public void SetBasicAuthHeader(WebRequest req, String userName, String userPassword) 
{ 
    string authInfo = userName + ":" + userPassword; 
    authInfo = Convert.ToBase64String(Encoding.Default.GetBytes(authInfo)); 
    req.Headers["Authorization"] = "Basic " + authInfo; 
} 

http://blog.kowalczyk.info/article/at3/Forcing-basic-http-authentication-for-HttpWebReq.html

+0

Buen punto aquí. El chattiness extra que esto evita también puede ser un problema de rendimiento. – tallseth

Cuestiones relacionadas