語言

CredentialCache.Add 方法

定義

將實例加入 NetworkCredential 憑證快取。

多載

名稱 Description
Add(Uri, String, NetworkCredential)

將 NetworkCredential 一個實例加入憑證快取,用於非 SMTP 協定,並與統一資源識別碼(URI)前綴及認證協定關聯。

Add(String, Int32, String, NetworkCredential)

NetworkCredential將一個用於 SMTP 的實例加入憑證快取,並將其與主機電腦、埠號及認證協定關聯。 使用此方法新增的憑證僅適用於 SMTP。 此方法無法用於 HTTP 或 FTP 請求。

Add(Uri, String, NetworkCredential)

來源:
CredentialCache.cs
來源:
CredentialCache.cs
來源:
CredentialCache.cs
來源:
CredentialCache.cs
來源:
CredentialCache.cs

將 NetworkCredential 一個實例加入憑證快取,用於非 SMTP 協定,並與統一資源識別碼(URI)前綴及認證協定關聯。

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

A Uri 指定憑證所授予存取權限的資源的 URI 前綴。

authType
String

所命名 uriPrefix資源所使用的認證方案。

cred
NetworkCredential

NetworkCredential要加入憑證快取。

例外狀況

uriPrefix 是 null。

-或-

authType 是 null。

相同的憑證會被重複加入。

範例

以下程式碼範例初始 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 方法將一個實例放入 NetworkCredential ,用於非 SMTP CredentialCache協定的 。 快取會依照憑證加入的順序來儲存。 當 GetCredential(Uri, String) 該方法被呼叫時,會回傳正確的匹配 NetworkCredential 實例。

適用於

Add(String, Int32, String, NetworkCredential)

來源:
CredentialCache.cs
來源:
CredentialCache.cs
來源:
CredentialCache.cs
來源:
CredentialCache.cs
來源:
CredentialCache.cs

NetworkCredential將一個用於 SMTP 的實例加入憑證快取,並將其與主機電腦、埠號及認證協定關聯。 使用此方法新增的憑證僅適用於 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

A String 用來識別主機電腦。

port
Int32

Int32 A 指定要連接的host埠。

authenticationType
String

String A 用於識別連接時hostcredential所使用的認證方案。

credential
NetworkCredential

NetworkCredential要加入憑證快取。

例外狀況

host 是 null。

-或-

authenticationType 是 null。

authenticationType 這不是被接受的數值。

port 小於零。

範例

以下程式碼範例初始 CredentialCache 化多個安全憑證以配合 SMTP,並使用其中一組憑證與 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 的實例放入 NetworkCredentialCredentialCache。 快取會依照憑證加入的順序來儲存。 當 GetCredential(String, Int32, String) 該方法被呼叫時,會回傳 NetworkCredential 一個實例,該實例是透過匹配 host、 port、 authenticationType和 來選擇的。 這種比較是不區分大小寫的。

支援的值 authenticationType 包括「NTLM」、「摘要」、「Kerberos」及「談判」。

使用此方法新增的憑證僅適用於 SMTP。 此方法不適用於 HTTP 或 FTP 協定。

適用於