CredentialCache.GetCredential Метод

Определение

Возвращает экземпляр, связанный NetworkCredential с указанным универсальным идентификатором ресурса (URI) или узлом и типом проверки подлинности.

Перегрузки

Имя Описание
GetCredential(Uri, String)

Возвращает экземпляр, связанный NetworkCredential с указанным универсальным идентификатором ресурса (URI) и типом проверки подлинности.

GetCredential(String, Int32, String)

NetworkCredential Возвращает экземпляр, связанный с указанным узлом, портом и протоколом проверки подлинности.

GetCredential(Uri, String)

Исходный код:
CredentialCache.cs
Исходный код:
CredentialCache.cs
Исходный код:
CredentialCache.cs
Исходный код:
CredentialCache.cs
Исходный код:
CredentialCache.cs

Возвращает экземпляр, связанный NetworkCredential с указанным универсальным идентификатором ресурса (URI) и типом проверки подлинности.

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

Параметры

uriPrefix
Uri

Значение Uri , указывающее префикс URI ресурсов, которым учетные данные предоставляют доступ.

authType
String

Схема проверки подлинности, используемая ресурсом с именем in uriPrefix.

Возвращаемое значение

Или NetworkCredential , если в кэше nullнет соответствующих учетных данных.

Реализации

Исключения

uriPrefix или authType есть null.

Примеры

В следующем примере кода метод используется для возврата экземпляра GetCredential(Uri, String) , связанного NetworkCredential с указанным универсальным кодом ресурса (URI) и типом проверки подлинности.

  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

Комментарии

Метод GetCredential(Uri, String) выполняет поиск CredentialCache и возвращает NetworkCredential экземпляр для указанного типа URI и авторизации. Если экземпляр CredentialCache не соответствует NetworkCredential , null возвращается.

GetCredential использует самый длинный префикс URI в кэше для определения набора учетных данных, возвращаемых для типа авторизации. В следующей таблице показаны примеры.

Префикс URI Совпадения
http://www.contoso.com/portal/news.htm Запросы для конкретной веб-страницы news.htm.
http://www.contoso.com/portal/ Запросы ко всему содержимому portal в пути, за исключением страницы news.htm.
http://www.contoso.com/ Запросы для всех ресурсов, за исключением тех, www.contoso.comкоторые в portal пути.

Применяется к

GetCredential(String, Int32, String)

Исходный код:
CredentialCache.cs
Исходный код:
CredentialCache.cs
Исходный код:
CredentialCache.cs
Исходный код:
CredentialCache.cs
Исходный код:
CredentialCache.cs

NetworkCredential Возвращает экземпляр, связанный с указанным узлом, портом и протоколом проверки подлинности.

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

Параметры

host
String

Объект, String определяющий главный компьютер.

port
Int32

Значение, Int32 указывающее порт для подключения host.

authenticationType
String

Объект String , определяющий схему проверки подлинности, используемую при подключении host.

Возвращаемое значение

Или NetworkCredential , если в кэше nullнет соответствующих учетных данных.

Реализации

Исключения

host равно null.

–или–

authenticationType равно null.

authenticationType не принятое значение.

–или–

host равно пустой строке ("").

port меньше нуля.

Комментарии

Этот метод выполняет поиск CredentialCache и возвращает NetworkCredential экземпляр для указанного узла, порта и типа авторизации. Значенияhost, передаваемые этому методу, portauthenticationType не учитывает регистр по сравнению со значениями, указанными при добавлении учетных данных в CredentialCache методыAdd.

Поддерживаемые значения authenticationType : NTLM, Дайджест, Kerberos и "Согласование".

Применяется к