CredentialCache.GetCredential Methode

Definitie

Retourneert een NetworkCredential exemplaar dat is gekoppeld aan een opgegeven URI (Uniform Resource Identifier) of host en verificatietype.

Overloads

Name Description
GetCredential(Uri, String)

Retourneert het NetworkCredential exemplaar dat is gekoppeld aan de opgegeven URI (Uniform Resource Identifier) en het verificatietype.

GetCredential(String, Int32, String)

Retourneert het NetworkCredential exemplaar dat is gekoppeld aan de opgegeven host, poort en verificatieprotocol.

GetCredential(Uri, String)

Retourneert het NetworkCredential exemplaar dat is gekoppeld aan de opgegeven URI (Uniform Resource Identifier) en het verificatietype.

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

Parameters

uriPrefix
Uri

Een Uri die het URI-voorvoegsel aangeeft van de resources waartoe de referentie toegang verleent.

authType
String

Het verificatieschema dat wordt gebruikt door de resource met de naam in uriPrefix.

Retouren

A NetworkCredential of, als er geen overeenkomende referentie in de cache is, null.

Implementeringen

Uitzonderingen

uriPrefix of authType is null.

Voorbeelden

In het volgende codevoorbeeld wordt de GetCredential(Uri, String) methode gebruikt om het NetworkCredential exemplaar te retourneren dat is gekoppeld aan de opgegeven URI en het verificatietype.

  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

Opmerkingen

De GetCredential(Uri, String) methode doorzoekt de CredentialCache en retourneert het NetworkCredential exemplaar voor de opgegeven URI en het autorisatietype. Als het CredentialCache geen overeenkomende NetworkCredential instantie bevat, null wordt deze geretourneerd.

GetCredential gebruikt het langste overeenkomende URI-voorvoegsel in de cache om te bepalen welke set referenties moet worden geretourneerd voor een autorisatietype. In de volgende tabel ziet u voorbeelden.

URI-voorvoegsel Overeenkomsten
http://www.contoso.com/portal/news.htm Aanvragen voor de specifieke webpagina news.htm.
http://www.contoso.com/portal/ Aanvragen voor alle inhoud in het portal pad, met uitzondering van de pagina news.htm.
http://www.contoso.com/ Aanvragen voor alle resources op www.contoso.com, met uitzondering van de resources in het portal pad.

Van toepassing op

GetCredential(String, Int32, String)

Retourneert het NetworkCredential exemplaar dat is gekoppeld aan de opgegeven host, poort en verificatieprotocol.

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

Parameters

host
String

Een String die de hostcomputer identificeert.

port
Int32

A Int32 waarmee de poort wordt opgegeven waarmee verbinding moet worden gemaakt.host

authenticationType
String

Een String die het verificatieschema identificeert dat wordt gebruikt bij het maken van verbinding met host.

Retouren

A NetworkCredential of, als er geen overeenkomende referentie in de cache is, null.

Implementeringen

Uitzonderingen

host is null.

– of –

authenticationType is null.

authenticationType geen geaccepteerde waarde.

– of –

host is gelijk aan de lege tekenreeks ("").

port is kleiner dan nul.

Opmerkingen

Deze methode doorzoekt het CredentialCache en retourneert het NetworkCredential exemplaar voor de opgegeven host, poort en autorisatietype. De hostwaarden portdie authenticationType aan deze methode worden doorgegeven, worden niet hoofdlettergevoelig vergeleken met de waarden die zijn opgegeven toen de referentie aan de CredentialCacheAdd methode werd toegevoegd.

De ondersteunde waarden zijn authenticationType 'NTLM', 'Digest', 'Kerberos' en 'Negotiate'.

Van toepassing op