HttpWebRequest.Credentials Propiedad

Definición

Obtiene o establece la información de autenticación para la solicitud.

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; }
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 propiedad

ICredentials que contiene las credenciales de autenticación asociadas a la solicitud. De manera predeterminada, es null.

Ejemplos

En el ejemplo de código siguiente se establecen las credenciales de una solicitud.

#using <System.dll>

using namespace System;
using namespace System::Net;
using namespace System::Text;
using namespace System::IO;

// Specify the URL to receive the request.
int main()
{
   array<String^>^args = Environment::GetCommandLineArgs();
   HttpWebRequest^ request = dynamic_cast<HttpWebRequest^>(WebRequest::Create(args[1]));

   // 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 = dynamic_cast<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 = gcnew 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>

*/
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.
'...
'
'

Comentarios

La Credentials propiedad contiene información de autenticación para identificar al creador de la solicitud. La Credentials propiedad puede ser , NetworkCredentialen cuyo caso la información de usuario, contraseña y dominio contenida en el NetworkCredential objeto se usa para autenticar la solicitud, o puede ser , CredentialCacheen cuyo caso se usa el identificador uniforme de recursos (URI) de la solicitud para determinar la información de usuario, contraseña y dominio que se usará para autenticar la solicitud.

En la mayoría de los escenarios de cliente, debe usar la DefaultCredentials propiedad , que contiene las credenciales del usuario que ha iniciado sesión actualmente. Para ello, establezca la UseDefaultCredentials propiedad true en en lugar de establecer esta propiedad.

Si la HttpWebRequest clase se usa en una aplicación de nivel intermedio, como una aplicación de ASP.NET, las credenciales de la DefaultCredentials propiedad pertenecen a la cuenta que ejecuta la página ASP (las credenciales del lado servidor). Normalmente, esta propiedad se establecería en las credenciales del cliente en cuyo nombre se realiza la solicitud.

Nota:

El esquema de autenticación NTLM no se puede usar para suplantar a otro usuario. Kerberos debe estar especialmente configurado para admitir la suplantación.

Para restringir HttpWebRequest a uno o varios métodos de autenticación, use la CredentialCache clase y enlace sus credenciales a uno o varios esquemas de autenticación.

Entre los esquemas de autenticación admitidos se incluyen Digest, Negotiate, Kerberos, NTLM y Basic.

Por motivos de seguridad, al seguir automáticamente las redirecciones, almacene las credenciales que desea incluir en el redireccionamiento en CredentialCache y asígnela a esta propiedad. Esta propiedad se establecerá null automáticamente en tras el redireccionamiento si contiene algo excepto .CredentialCache Tener este valor de propiedad se establece null automáticamente en en esas condiciones impide que las credenciales se envíen a cualquier destino no deseado.

Se aplica a