次の方法で共有


CredentialCache.GetCredential メソッド

定義

指定した URI (Uniform Resource Identifier) またはホスト、および認証の種類に関連付けられている NetworkCredential インスタンスを返します。

オーバーロード

GetCredential(Uri, String)

指定した URI (Uniform Resource Identifier) と認証の種類に関連付けられた NetworkCredential インスタンスを返します。

GetCredential(String, Int32, String)

指定したホスト、ポート、および認証プロトコルに関連付けられている NetworkCredential インスタンスを返します。

GetCredential(Uri, String)

ソース:
CredentialCache.cs
ソース:
CredentialCache.cs
ソース:
CredentialCache.cs

指定した URI (Uniform Resource Identifier) と認証の種類に関連付けられた 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.NetworkCredential
Public Function GetCredential (uriPrefix As Uri, authType As String) As NetworkCredential

パラメーター

uriPrefix
Uri

資格情報によってアクセスが許可されるリソースの URI プリフィックスを指定する Uri

authType
String

uriPrefix で指定されたリソースが使用する認証方式。

戻り値

NetworkCredential。または、キャッシュに一致する資格情報がない場合はnull

実装

例外

uriPrefix または authTypenull です。

次のコード例では、 メソッドを GetCredential(Uri, String) 使用して、指定した URI と認証の NetworkCredential 種類に関連付けられているインスタンスを返します。

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 検索し、指定された URI と承認の NetworkCredential 種類のインスタンスを返します。 に CredentialCache 一致する NetworkCredential インスタンスが含まれない場合は、 null が返されます。

GetCredential では、キャッシュ内で最も長く一致する URI プレフィックスを使用して、承認の種類に対して返す資格情報のセットを決定します。 次の表に例を示します。

URI プレフィックス [一致する]
http://www.contoso.com/portal/news.htm 特定の Web ページ news.htmに対する要求。
http://www.contoso.com/portal/ ページ news.htmを除く、パス内portalのすべてのコンテンツに対する要求。
http://www.contoso.com/ パス内のリソースを除く、 www.contoso.comのすべてのリソースに対する portal 要求。

適用対象

GetCredential(String, Int32, String)

ソース:
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

host 上の接続先のポートを指定する Int32

authenticationType
String

host に接続する場合に使用する認証方式を指定する String

戻り値

NetworkCredential。または、キャッシュに一致する資格情報がない場合はnull

実装

例外

hostnull です。

または

authTypenullです。

authType が使用できる値ではありません。

- または -

host が空の文字列 ("") です。

port が 0 未満です。

注釈

このメソッドは を CredentialCache 検索し、指定したホスト、ポート、および承認の種類のインスタンスを返 NetworkCredential します。 hostこのメソッドに渡される 、port、および の値は、 メソッドを使用して資格情報が に追加CredentialCacheされたときに指定された値と大文字とauthType小文字をAdd区別せずに比較されます。

でサポートされている値 authType は、"NTLM"、"Digest"、"Kerberos"、および "Negotiate" です。

適用対象