CredentialCache.GetCredential Método

Definición

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

host
String

que String identifica el equipo host.

port
Int32

Int32 que especifica el puerto al que se va a conectar en host.

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

host es null.

O bien

authenticationType es null.

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".

Se aplica a