CredentialCache.GetCredential Metod

Definition

Returnerar en NetworkCredential instans som är associerad med en angiven URI (Uniform Resource Identifier) eller värd och autentiseringstyp.

Överlagringar

Name Description
GetCredential(Uri, String)

Returnerar den NetworkCredential instans som är associerad med angiven URI (Uniform Resource Identifier) och autentiseringstyp.

GetCredential(String, Int32, String)

Returnerar den NetworkCredential instans som är associerad med den angivna värden, porten och autentiseringsprotokollet.

GetCredential(Uri, String)

Returnerar den NetworkCredential instans som är associerad med angiven URI (Uniform Resource Identifier) och autentiseringstyp.

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

Parametrar

uriPrefix
Uri

En Uri som anger URI-prefixet för de resurser som autentiseringsuppgifterna ger åtkomst till.

authType
String

Autentiseringsschemat som används av resursen med namnet i uriPrefix.

Returer

A NetworkCredential eller, om det inte finns någon matchande autentiseringsuppgift i cacheminnet, null.

Implementeringar

Undantag

uriPrefix eller authType är null.

Exempel

I följande kodexempel används GetCredential(Uri, String) metoden för att returnera den NetworkCredential instans som är associerad med den angivna URI- och autentiseringstypen.

  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

Kommentarer

Metoden GetCredential(Uri, String) söker i CredentialCache och returnerar instansen NetworkCredential efter den angivna URI- och auktoriseringstypen. Om innehåller CredentialCache ingen matchande NetworkCredential instans null returneras.

GetCredential använder det längsta matchande URI-prefixet i cacheminnet för att avgöra vilken uppsättning autentiseringsuppgifter som ska returneras för en auktoriseringstyp. Följande tabell visar exempel.

URI-prefix Matcher
http://www.contoso.com/portal/news.htm Begäranden för den specifika webbsidan news.htm.
http://www.contoso.com/portal/ Begäranden om allt innehåll i portal sökvägen, förutom sidan news.htm.
http://www.contoso.com/ Begäranden för alla resurser på www.contoso.com, förutom de som finns portal i sökvägen.

Gäller för

GetCredential(String, Int32, String)

Returnerar den NetworkCredential instans som är associerad med den angivna värden, porten och autentiseringsprotokollet.

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

Parametrar

host
String

En String som identifierar värddatorn.

port
Int32

En Int32 som anger porten som ska anslutas till på host.

authenticationType
String

En String som identifierar det autentiseringsschema som används vid anslutning till host.

Returer

A NetworkCredential eller, om det inte finns någon matchande autentiseringsuppgift i cacheminnet, null.

Implementeringar

Undantag

host är null.

-eller-

authenticationType är null.

authenticationType inte ett godkänt värde.

-eller-

host är lika med den tomma strängen ("").

port är mindre än noll.

Kommentarer

Den här metoden söker i CredentialCache och returnerar instansen NetworkCredential efter den angivna värd-, port- och auktoriseringstypen. Värdena host, portoch som authenticationType skickas till den här metoden är skiftlägesokänsliga jämfört med de värden som angavs när autentiseringsuppgifterna lades till CredentialCache med hjälp av Add metoderna.

De värden som stöds för authenticationType är "NTLM", "Digest", "Kerberos" och "Negotiate".

Gäller för