CredentialCache.Add メソッド

定義

NetworkCredential インスタンスを資格情報キャッシュに追加します。

オーバーロード

名前 説明
Add(Uri, String, NetworkCredential)

SMTP 以外のプロトコルで使用するために NetworkCredential インスタンスを資格情報キャッシュに追加し、URI (Uniform Resource Identifier) プレフィックスと認証プロトコルに関連付けます。

Add(String, Int32, String, NetworkCredential)

SMTP で使用する NetworkCredential インスタンスを資格情報キャッシュに追加し、ホスト コンピューター、ポート、および認証プロトコルに関連付けます。 この方法を使用して追加された資格情報は、SMTP に対してのみ有効です。 このメソッドは、HTTP または FTP 要求では機能しません。

Add(Uri, String, NetworkCredential)

SMTP 以外のプロトコルで使用するために NetworkCredential インスタンスを資格情報キャッシュに追加し、URI (Uniform Resource Identifier) プレフィックスと認証プロトコルに関連付けます。

public:
 void Add(Uri ^ uriPrefix, System::String ^ authType, System::Net::NetworkCredential ^ cred);
public void Add(Uri uriPrefix, string authType, System.Net.NetworkCredential cred);
member this.Add : Uri * string * System.Net.NetworkCredential -> unit
Public Sub Add (uriPrefix As Uri, authType As String, cred As NetworkCredential)

パラメーター

uriPrefix
Uri

資格情報がアクセスを許可するリソースの URI プレフィックスを指定する Uri

authType
String

uriPrefixで指定されたリソースによって使用される認証スキーム。

cred
NetworkCredential

資格情報キャッシュに追加する NetworkCredential

例外

uriPrefixnullです。

-または-

authTypenullです。

同じ資格情報が複数回追加されます。

次のコード例では、複数のセキュリティ資格情報を使用して CredentialCache を初期化し、それらの資格情報を WebRequestで使用します。

CredentialCache myCache = new CredentialCache();

myCache.Add(new Uri("http://www.contoso.com/"),"Basic",new NetworkCredential(UserName,SecurelyStoredPassword));
myCache.Add(new Uri("http://www.contoso.com/"),"Digest", new NetworkCredential(UserName,SecurelyStoredPassword,Domain));

wReq.Credentials = myCache;
Dim myCache As New CredentialCache()

myCache.Add(New Uri("http://www.contoso.com/"), "Basic", New NetworkCredential(UserName, SecurelyStoredPassword))
myCache.Add(New Uri("http://www.contoso.com/"), "Digest", New NetworkCredential(UserName, SecurelyStoredPassword, Domain))

wReq.Credentials = myCache

注釈

Addメソッドは、SMTP 以外のプロトコルで使用するNetworkCredential インスタンスをCredentialCacheに配置します。 キャッシュには、資格情報が追加された順序で格納されます。 GetCredential(Uri, String) メソッドが呼び出されると、適切に一致するNetworkCredentialインスタンスが返されます。

適用対象

Add(String, Int32, String, NetworkCredential)

SMTP で使用する NetworkCredential インスタンスを資格情報キャッシュに追加し、ホスト コンピューター、ポート、および認証プロトコルに関連付けます。 この方法を使用して追加された資格情報は、SMTP に対してのみ有効です。 このメソッドは、HTTP または FTP 要求では機能しません。

public:
 void Add(System::String ^ host, int port, System::String ^ authenticationType, System::Net::NetworkCredential ^ credential);
public void Add(string host, int port, string authenticationType, System.Net.NetworkCredential credential);
member this.Add : string * int * string * System.Net.NetworkCredential -> unit
Public Sub Add (host As String, port As Integer, authenticationType As String, credential As NetworkCredential)

パラメーター

host
String

ホスト コンピューターを識別する String

port
Int32

hostに接続するポートを指定するInt32

authenticationType
String

credentialを使用してhostに接続するときに使用される認証スキームを識別するString

credential
NetworkCredential

資格情報キャッシュに追加する NetworkCredential

例外

hostnullです。

-または-

authenticationTypenullです。

authenticationType 受け入れられた値ではありません。

port が 0 未満です。

次のコード例では、SMTP で使用するために複数のセキュリティ資格情報を使用して CredentialCache を初期化し、それらの資格情報のいずれかを SmtpClientで使用します。

SmtpClient client = new SmtpClient("ContosoMail", 45);
MailAddress from = new MailAddress("sender@SenderMailServerName.com", "Sender Name");
MailAddress to = new MailAddress("recepient@RecepientMailServerName.com", "Recepient Name");
MailMessage message = new MailMessage(from, to);

message.Body = "This is a test email message sent by an application. ";
message.Subject = "Test Email using Credentials";

NetworkCredential myCreds = new NetworkCredential("username", "password", "domain");
CredentialCache myCredentialCache = new CredentialCache();
try
{
    myCredentialCache.Add("ContoscoMail", 35, "Basic", myCreds);
    myCredentialCache.Add("ContoscoMail", 45, "NTLM", myCreds);

    client.Credentials = myCredentialCache.GetCredential("ContosoMail", 45, "NTLM");
    client.Send(message);
    Console.WriteLine("Goodbye.");
}
    catch(Exception e)
    {
          Console.WriteLine("Exception is raised. ");
          Console.WriteLine("Message: {0} ",e.Message);
    }
Dim client As New SmtpClient("ContosoMail", 45)
Dim from As New MailAddress("sender@SenderMailServerName.com", "Sender Name")
Dim sendTo As New MailAddress("recepient@RecepientMailServerName.com", "Recepient Name")
Dim message As New MailMessage(from, sendTo)

message.Body = "This is a test email message sent by an application. "
message.Subject = "Test Email using Credentials"

Dim myCreds As New NetworkCredential("username", "password", "domain")
DIm myCredentialCache As New CredentialCache()

Try 
    myCredentialCache.Add("ContoscoMail", 35, "Basic", myCreds)
    myCredentialCache.Add("ContoscoMail", 45, "NTLM", myCreds)

    client.Credentials = myCredentialCache.GetCredential("ContosoMail", 45, "NTLM")
    client.Send(message)
    Console.WriteLine("Goodbye.")
Catch e As Exception
    Console.WriteLine("Exception is raised. ")
    Console.WriteLine($"Message: {e.Message} ")
End Try

注釈

このメソッドは、SMTP で使用する NetworkCredential インスタンスを CredentialCacheに配置します。 キャッシュには、資格情報が追加された順序で格納されます。 GetCredential(String, Int32, String) メソッドが呼び出されると、hostport、およびauthenticationTypeを照合することによって選択されたNetworkCredential インスタンスが返されます。 比較は大文字と小文字を区別せずに行われます。

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

この方法で追加された資格情報は、SMTP でのみ有効です。 このメソッドは、HTTP または FTP プロトコルでは機能しません。

適用対象