Sdílet prostřednictvím


CredentialCache.GetCredential Metoda

Definice

Vrátí instanci přidruženou NetworkCredential k zadanému identifikátoru URI nebo hostiteli a typu ověřování.

Přetížení

GetCredential(Uri, String)

NetworkCredential Vrátí instanci přidruženou k zadanému identifikátoru URI a typu ověřování.

GetCredential(String, Int32, String)

Vrátí instanci přidruženou NetworkCredential k zadanému hostiteli, portu a ověřovacímu protokolu.

GetCredential(Uri, String)

Zdroj:
CredentialCache.cs
Zdroj:
CredentialCache.cs
Zdroj:
CredentialCache.cs

NetworkCredential Vrátí instanci přidruženou k zadanému identifikátoru URI a typu ověřování.

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

Parametry

uriPrefix
Uri

A Uri , který určuje předponu identifikátoru URI prostředků, ke kterým přihlašovací údaje uděluje přístup.

authType
String

Schéma ověřování používané prostředkem s názvem v uriPrefix.

Návraty

A NetworkCredential nebo , pokud v mezipaměti nejsou odpovídající přihlašovací údaje, null.

Implementuje

Výjimky

uriPrefix nebo authType je null.

Příklady

Následující příklad kódu používá metodu GetCredential(Uri, String) k vrácení NetworkCredential instance přidružené k zadanému identifikátoru URI a typu ověřování.

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

Poznámky

Metoda GetCredential(Uri, String) vyhledá CredentialCache a vrátí NetworkCredential instanci pro zadaný identifikátor URI a typ autorizace. Pokud objekt neobsahuje CredentialCache žádnou odpovídající NetworkCredential instanci, null vrátí se.

GetCredential používá nejdelší odpovídající předponu identifikátoru URI v mezipaměti k určení, kterou sadu přihlašovacích údajů se má vrátit pro typ autorizace. Následující tabulka uvádí příklady.

Předpona identifikátoru URI Shody
http://www.contoso.com/portal/news.htm Požadavky na konkrétní webovou stránku news.htm
http://www.contoso.com/portal/ Požadavky na veškerý obsah v cestě portal s výjimkou stránky news.htm.
http://www.contoso.com/ Požadavky na všechny prostředky na adrese www.contoso.coms výjimkou prostředků v cestě portal .

Platí pro

GetCredential(String, Int32, String)

Zdroj:
CredentialCache.cs
Zdroj:
CredentialCache.cs
Zdroj:
CredentialCache.cs

Vrátí instanci přidruženou NetworkCredential k zadanému hostiteli, portu a ověřovacímu protokolu.

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

Parametry

host
String

A String , který identifikuje hostitelský počítač.

port
Int32

Určuje Int32 port, ke kterému se má připojit na host.

authenticationType
String

A String , který identifikuje schéma ověřování použité při připojování k host.

Návraty

A NetworkCredential nebo , pokud v mezipaměti nejsou odpovídající přihlašovací údaje, null.

Implementuje

Výjimky

host je null.

-nebo-

authType je null.

authType není akceptovaná hodnota.

-nebo-

host se rovná prázdnému řetězci ("").

Hodnota port je menší než nula.

Poznámky

Tato metoda vyhledá CredentialCache a vrátí NetworkCredential instanci pro zadaného hostitele, port a typ autorizace. Hodnoty host, porta authType předané této metodě se porovnávají s hodnotami zadanými při přidání přihlašovacích údajů do CredentialCache metody bez Add rozlišování velkých a malých písmen.

Podporované hodnoty pro authType jsou NTLM, Digest, Kerberos a Negotiate.

Platí pro