Comparteix a través de


CredentialCache.GetCredential Método

Definición

Devuelve una instancia de NetworkCredential asociada a un identificador URI u host y un tipo de autenticación especificados.

Sobrecargas

GetCredential(Uri, String)

Devuelve la instancia de NetworkCredential asociada al identificador URI y el tipo de autenticación especificados.

GetCredential(String, Int32, String)

Devuelve la instancia de NetworkCredential asociada al host, puerto y protocolo de autenticación especificados.

GetCredential(Uri, String)

Source:
CredentialCache.cs
Source:
CredentialCache.cs
Source:
CredentialCache.cs

Devuelve la instancia de NetworkCredential asociada al identificador URI y el 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);
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

Uri que especifica el prefijo URI de los recursos a los que la credencial concede acceso.

authType
String

Esquema de autenticación utilizado por el recurso especificado en uriPrefix.

Devoluciones

NetworkCredential o, si la caché no contiene ninguna credencial coincidente, 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.

void Display( NetworkCredential^ credential )
{
   Console::WriteLine( "\nThe credentials are:" );
   Console::WriteLine( "\nUsername : {0} , Password : {1} , Domain : {2}", credential->UserName, credential->Password, credential->Domain );
}

void GetPage( String^ url, String^ userName, String^ password, String^ domainName )
{
   try
   {
      CredentialCache^ myCredentialCache = gcnew CredentialCache;

      // Dummy names used as credentials.
      myCredentialCache->Add( gcnew Uri( "http://microsoft.com/" ), "Basic", gcnew NetworkCredential( "user1","passwd1","domain1" ) );
      myCredentialCache->Add( gcnew Uri( "http://msdn.com/" ), "Basic", gcnew NetworkCredential( "user2","passwd2","domain2" ) );
      myCredentialCache->Add( gcnew Uri( url ), "Basic", gcnew 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( gcnew 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 != nullptr )
            Console::WriteLine( "\r\nFailed to obtain a response. The following error occurred : {0}", (dynamic_cast<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 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 en CredentialCache 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 Coincide
http://www.contoso.com/portal/news.htm Solicitudes de la página news.htmweb específica.
http://www.contoso.com/portal/ Solicita 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)

Source:
CredentialCache.cs
Source:
CredentialCache.cs
Source:
CredentialCache.cs

Devuelve la instancia de NetworkCredential asociada al host, puerto y 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);
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

Un valor String que identifica al equipo host.

port
Int32

Un valor Int32 que especifica el puerto de conexión en host.

authenticationType
String

Un valor String que identifica el esquema de autenticación utilizado para conectarse a host.

Devoluciones

NetworkCredential o, si la caché no contiene ninguna credencial coincidente, null.

Implementaciones

Excepciones

host es null.

O bien

authType es null.

authType no tiene un valor aceptado.

o bien

host es una 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 authType 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 mediante los Add métodos .

Los valores admitidos para authType son "NTLM", "Digest", "Kerberos" y "Negotiate".

Se aplica a