CredentialCache.GetCredential Metod
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
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
- 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
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".