HttpWebRequest.Credentials Propriedade

Definição

Obtém ou define a informação de autenticação para o pedido.

public:
 virtual property System::Net::ICredentials ^ Credentials { System::Net::ICredentials ^ get(); void set(System::Net::ICredentials ^ value); };
public override System.Net.ICredentials Credentials { get; set; }
member this.Credentials : System.Net.ICredentials with get, set
Public Overrides Property Credentials As ICredentials

Valor de Propriedade

An ICredentials que contém as credenciais de autenticação associadas ao pedido. A predefinição é null.

Exemplos

O seguinte exemplo de código define as credenciais para um pedido.

using System;
using System.Net;
using System.Text;
using System.IO;

    public class Test
    {
        // Specify the URL to receive the request.
        public static void Main (string[] args)
        {
            HttpWebRequest request = (HttpWebRequest)WebRequest.Create(args[0]);

            // Set some reasonable limits on resources used by this request
            request.MaximumAutomaticRedirections = 4;
            request.MaximumResponseHeadersLength = 4;
            // Set credentials to use for this request.
            request.Credentials = CredentialCache.DefaultCredentials;
            HttpWebResponse response = (HttpWebResponse)request.GetResponse();

            Console.WriteLine("Content length is {0}", response.ContentLength);
            Console.WriteLine("Content type is {0}", response.ContentType);

            // Get the stream associated with the response.
            Stream receiveStream = response.GetResponseStream();

            // Pipes the stream to a higher level stream reader with the required encoding format.
            StreamReader readStream = new StreamReader(receiveStream, Encoding.UTF8);

            Console.WriteLine("Response stream received.");
            Console.WriteLine(readStream.ReadToEnd());
            response.Close();
            readStream.Close();
        }
    }

/*
The output from this example will vary depending on the value passed into Main
but will be similar to the following:

Content length is 1542
Content type is text/html; charset=utf-8
Response stream received.
<html>
...
</html>

*/
Imports System.Net
Imports System.Text
Imports System.IO


    Public Class Test

        ' Specify the URL to receive the request.
        Public Shared Sub Main(ByVal args() As String)
        Dim request As HttpWebRequest = CType(WebRequest.Create(args(0)), HttpWebRequest)


        ' Set some reasonable limits on resources used by this request
        request.MaximumAutomaticRedirections = 4
        request.MaximumResponseHeadersLength = 4

        ' Set credentials to use for this request.
        request.Credentials = CredentialCache.DefaultCredentials

        Dim response As HttpWebResponse = CType(request.GetResponse(), HttpWebResponse)

        Console.WriteLine("Content length is {0}", response.ContentLength)
        Console.WriteLine("Content type is {0}", response.ContentType)

        ' Get the stream associated with the response.
        Dim receiveStream As Stream = response.GetResponseStream()

        ' Pipes the stream to a higher level stream reader with the required encoding format. 
        Dim readStream As New StreamReader(receiveStream, Encoding.UTF8)

        Console.WriteLine("Response stream received.")
        Console.WriteLine(readStream.ReadToEnd())
        response.Close()
        readStream.Close()
    End Sub
End Class
'
'The output from this example will vary depending on the value passed into Main 
'but will be similar to the following:
'
'Content length is 1542
'Content type is text/html; charset=utf-8
'Response stream received.
'...
'
'

Observações

Atenção

WebRequest, HttpWebRequest, ServicePoint, e WebClient são obsoletos, e não deves usá-los para novos desenvolvimentos. Utilize HttpClient em substituição.

A Credentials propriedade contém informações de autenticação para identificar o criador do pedido. A Credentials propriedade pode ser um NetworkCredential, caso em que a informação do utilizador, palavra-passe e domínio contida no NetworkCredential objeto é usada para autenticar o pedido, ou pode ser um CredentialCache, caso em que o Identificador Uniforme de Recursos (URI) do pedido é usado para determinar o utilizador, a palavra-passe e a informação do domínio a utilizar para autenticar o pedido.

Na maioria dos cenários de cliente, deve usar a DefaultCredentials propriedade, que contém as credenciais do utilizador atualmente iniciado. Para isso, defina a UseDefaultCredentials propriedade para true em vez de definir esta propriedade.

Se a classe HttpWebRequest estiver a ser usada numa aplicação de nível intermédio, como uma aplicação ASP.NET, as credenciais na propriedade DefaultCredentials pertencem à conta que executa a página ASP (as credenciais do lado do servidor). Normalmente, definiria esta propriedade para as credenciais do cliente em nome do qual o pedido é feito.

Note

O esquema de autenticação NTLM não pode ser usado para se fazer passar por outro utilizador. O Kerberos deve estar especialmente configurado para suportar a imitação.

Para restringir o HttpWebRequest a um ou mais métodos de autenticação, use a CredentialCache classe e associe as suas credenciais a um ou mais esquemas de autenticação

Os esquemas de autenticação suportados incluem Digest, Negotiate, Kerberos, NTLM e Basic.

Por razões de segurança, ao seguir automaticamente os redirecionamentos, armazene as credenciais que quer que incluam no redirecionamento e CredentialCache atribua-as a essa propriedade. Esta propriedade será automaticamente definida como null ao redirecionar se contiver algo além de um CredentialCache. Ter este valor de propriedade automaticamente definido para null nessas condições impede que credenciais sejam enviadas para qualquer destino não pretendido.

Aplica-se a