CredentialCache.GetCredential Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
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.com s 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
- 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
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
, port
a 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.