CredentialCache.GetCredential Método
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í.
Devuelve una NetworkCredential instancia asociada a un identificador uniforme de recursos (URI) o host especificado y un tipo de autenticación.
Sobrecargas
| Nombre | Description |
|---|---|
| GetCredential(Uri, String) |
Devuelve la NetworkCredential instancia asociada al identificador uniforme de recursos (URI) y al tipo de autenticación especificados. |
| GetCredential(String, Int32, String) |
Devuelve la NetworkCredential instancia asociada al host, el puerto y el protocolo de autenticación especificados. |
GetCredential(Uri, String)
Devuelve la NetworkCredential instancia asociada al identificador uniforme de recursos (URI) y al tipo de autenticación especificados.
public:
virtual System::Net::NetworkCredential ^ GetCredential(Uri ^ uriPrefix, System::String ^ authType);
public System.Net.NetworkCredential GetCredential(Uri uriPrefix, string authType);
abstract member GetCredential : Uri * string -> System.Net.NetworkCredential
override this.GetCredential : Uri * string -> System.Net.NetworkCredential
Public Function GetCredential (uriPrefix As Uri, authType As String) As NetworkCredential
Parámetros
- uriPrefix
- Uri
que Uri especifica el prefijo URI de los recursos a los que la credencial concede acceso.
- authType
- String
Esquema de autenticación usado por el recurso denominado en uriPrefix.
Devoluciones
O NetworkCredential , si no hay ninguna credencial coincidente en la memoria caché, null.
Implementaciones
Excepciones
uriPrefix o authType es null.
Ejemplos
En el ejemplo de código siguiente se usa el GetCredential(Uri, String) método para devolver la NetworkCredential instancia asociada al URI y al tipo de autenticación especificados.
public static void GetPage(string url,string userName,string password,string domainName)
{
try
{
CredentialCache myCredentialCache = new CredentialCache();
// Dummy names used as credentials.
myCredentialCache.Add(new Uri("http://microsoft.com/"),"Basic", new NetworkCredential("user1","passwd1","domain1"));
myCredentialCache.Add(new Uri("http://msdn.com/"),"Basic", new NetworkCredential("user2","passwd2","domain2"));
myCredentialCache.Add(new Uri(url),"Basic", new NetworkCredential(userName,password,domainName));
// Create a webrequest with the specified url.
WebRequest myWebRequest = WebRequest.Create(url);
// Call 'GetCredential' to obtain the credentials specific to our Uri.
NetworkCredential myCredential = myCredentialCache.GetCredential(new Uri(url),"Basic");
Display(myCredential);
// Associating only our credentials.
myWebRequest.Credentials = myCredential;
// Sends the request and waits for response.
WebResponse myWebResponse = myWebRequest.GetResponse();
// Process response here.
Console.WriteLine("\nResponse Received.");
myWebResponse.Close();
}
catch(WebException e)
{
if (e.Response != null)
Console.WriteLine("\r\nFailed to obtain a response. The following error occurred : {0}",((HttpWebResponse)(e.Response)).StatusDescription);
else
Console.WriteLine("\r\nFailed to obtain a response. The following error occurred : {0}",e.Status);
}
catch(Exception e)
{
Console.WriteLine("\nThe following exception was raised : {0}",e.Message);
}
}
public static void Display(NetworkCredential credential)
{
Console.WriteLine("\nThe credentials are:");
Console.WriteLine("\nUsername : {0} ,Password : {1} ,Domain : {2}",credential.UserName,credential.Password,credential.Domain);
}
Public Shared Sub GetPage(url As String, userName As String, password As String, domainName As String)
Try
Dim myCredentialCache As New CredentialCache()
' Dummy names used as credentials
myCredentialCache.Add(New Uri("http://microsoft.com/"), "Basic", New NetworkCredential("user1", "passwd1", "domain1"))
myCredentialCache.Add(New Uri("http://msdn.com/"), "Basic", New NetworkCredential("user2", "passwd2", "domain2"))
myCredentialCache.Add(New Uri(url), "Basic", New NetworkCredential(userName, password, domainName))
' Creates a webrequest with the specified url.
Dim myWebRequest As WebRequest = WebRequest.Create(url)
' Call 'GetCredential' to obtain the credentials specific to our Uri.
Dim myCredential As NetworkCredential = myCredentialCache.GetCredential(New Uri(url), "Basic")
Display(myCredential)
myWebRequest.Credentials = myCredential 'Associating only our credentials
' Sends the request and waits for response.
Dim myWebResponse As WebResponse = myWebRequest.GetResponse()
' Process response here.
Console.WriteLine(ControlChars.Cr + "Response Received.")
myWebResponse.Close()
Catch e As WebException
If Not (e.Response Is Nothing) Then
Console.WriteLine(ControlChars.Lf + ControlChars.Cr + "Failed to obtain a response. The following error occurred : {0}", CType(e.Response, HttpWebResponse).StatusDescription)
Else
Console.WriteLine(ControlChars.Lf + ControlChars.Cr + "Failed to obtain a response. The following error occurred : {0}", e.Status)
End If
Catch e As Exception
Console.WriteLine(ControlChars.Cr + "The following exception was raised : {0}", e.Message)
End Try
End Sub
Public Shared Sub Display(ByVal credential As NetworkCredential)
Console.WriteLine("The credentials are: ")
Console.WriteLine(ControlChars.Cr + "Username : {0} ,Password : {1} ,Domain : {2}", credential.UserName, credential.Password, credential.Domain)
End Sub
Comentarios
El GetCredential(Uri, String) método busca CredentialCache en y devuelve la NetworkCredential instancia del URI y el tipo de autorización especificados. Si no CredentialCache contiene ninguna instancia coincidente NetworkCredential , null se devuelve.
GetCredential usa el prefijo de URI coincidente más largo de la memoria caché para determinar qué conjunto de credenciales se devolverán para un tipo de autorización. En la tabla siguiente se muestran ejemplos.
| Prefijo de URI | Coincidencias |
|---|---|
http://www.contoso.com/portal/news.htm |
Solicitudes para la página news.htmweb específica . |
http://www.contoso.com/portal/ |
Solicitudes de todo el contenido de la portal ruta de acceso, excepto la página news.htm. |
http://www.contoso.com/ |
Solicitudes de todos los recursos en www.contoso.com, excepto las de la ruta de portal acceso. |
Se aplica a
GetCredential(String, Int32, String)
Devuelve la NetworkCredential instancia asociada al host, el puerto y el protocolo de autenticación especificados.
public:
virtual System::Net::NetworkCredential ^ GetCredential(System::String ^ host, int port, System::String ^ authenticationType);
public System.Net.NetworkCredential GetCredential(string host, int port, string authenticationType);
abstract member GetCredential : string * int * string -> System.Net.NetworkCredential
override this.GetCredential : string * int * string -> System.Net.NetworkCredential
Public Function GetCredential (host As String, port As Integer, authenticationType As String) As NetworkCredential
Parámetros
- authenticationType
- String
String que identifica el esquema de autenticación utilizado al conectarse a host.
Devoluciones
O NetworkCredential , si no hay ninguna credencial coincidente en la memoria caché, null.
Implementaciones
Excepciones
authenticationType no un valor aceptado.
O bien
host es igual a la cadena vacía ("").
port es menor que cero.
Comentarios
Este método busca en y CredentialCache devuelve la NetworkCredential instancia del host, el puerto y el tipo de autorización especificados. Los hostvalores , porty authenticationType pasados a este método no distinguen mayúsculas de minúsculas en comparación con los valores especificados cuando se agregó la credencial al CredentialCache uso de los Add métodos .
Los valores admitidos para authenticationType son "NTLM", "Digest", "Kerberos" y "Negotiate".