HttpWebRequest.Credentials Propiedad
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
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
Comentarios
https://aka.ms/ContentUserFeedback.
Próximamente: A lo largo de 2024 iremos eliminando gradualmente GitHub Issues como mecanismo de comentarios sobre el contenido y lo sustituiremos por un nuevo sistema de comentarios. Para más información, vea:Enviar y ver comentarios de