CredentialCache.GetCredential 方法   
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
返回与指定的统一资源标识符 (URI) 或主机和身份验证类型相关联的 NetworkCredential 实例。
重载
| GetCredential(Uri, String) | 返回与指定的统一资源标识符 (URI) 和身份验证类型相关联的 NetworkCredential 实例。 | 
| GetCredential(String, Int32, String) | 返回与指定的主机、端口和身份验证协议关联的 NetworkCredential 实例。 | 
GetCredential(Uri, String)
- Source:
- CredentialCache.cs
- Source:
- CredentialCache.cs
- Source:
- CredentialCache.cs
返回与指定的统一资源标识符 (URI) 和身份验证类型相关联的 NetworkCredential 实例。
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.NetworkCredentialPublic Function GetCredential (uriPrefix As Uri, authType As String) As NetworkCredential参数
- authType
- String
在 uriPrefix 中命名的资源所使用的身份验证方案。
返回
              NetworkCredential;如果缓存中没有匹配的凭据,则为 null。
实现
例外
              uriPrefix 或 authType 为 null。
示例
下面的代码示例使用 GetCredential(Uri, String) 方法返回与 NetworkCredential 指定的 URI 和身份验证类型关联的实例。
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
注解
方法 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)
- Source:
- CredentialCache.cs
- Source:
- CredentialCache.cs
- Source:
- 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.NetworkCredentialPublic Function GetCredential (host As String, port As Integer, authenticationType As String) As NetworkCredential参数
返回
              NetworkCredential;如果缓存中没有匹配的凭据,则为 null。
实现
例外
              port 小于零。
注解
此方法搜索 CredentialCache 并返回 NetworkCredential 指定主机、端口和授权类型的实例。 
              host与使用 Add 方法将凭据添加到 CredentialCache 时指定的值相比,传递给此方法的 、 port和 authType 值不区分大小写。
支持的值为 authType “NTLM”、“Digest”、“Kerberos”和“Negotiate”。