次の方法で共有


CredentialCache.Add メソッド

定義

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

オーバーロード

Add(Uri, String, NetworkCredential)

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

Add(String, Int32, String, NetworkCredential)

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

Add(Uri, String, NetworkCredential)

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

NetworkCredential インスタンスを SMTP 以外のプロトコルで使用する資格情報キャッシュに追加し、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です。

同じ資格情報が 2 回以上追加されました。

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

CredentialCache^ myCache = gcnew CredentialCache;

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

wReq->Credentials = myCache;
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)

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

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

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

credential
NetworkCredential

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

例外

hostnullです。

または

authTypenullです。

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

port が 0 未満です。

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

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

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

NetworkCredential^ myCreds = gcnew NetworkCredential("username", "password", "domain");
CredentialCache^ myCredentialCache = gcnew 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);
    }
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

注釈

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

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

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

適用対象