CredentialCache.Add 方法

定义

NetworkCredential 实例添加到凭据缓存。

重载

名称 说明
Add(Uri, String, NetworkCredential)

NetworkCredential 实例添加到凭据缓存中以用于 SMTP 以外的协议,并将其与统一资源标识符(URI)前缀和身份验证协议相关联。

Add(String, Int32, String, NetworkCredential)

NetworkCredential将用于 SMTP 的实例添加到凭据缓存,并将其与主机、端口和身份验证协议相关联。 使用此方法添加的凭据仅适用于 SMTP。 此方法不适用于 HTTP 或 FTP 请求。

Add(Uri, String, NetworkCredential)

Source:
CredentialCache.cs
Source:
CredentialCache.cs
Source:
CredentialCache.cs
Source:
CredentialCache.cs
Source:
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

一个 Uri ,指定凭据向其授予访问权限的资源的 URI 前缀。

authType
String

名为 <a0/> 的资源使用的身份验证方案。

cred
NetworkCredential

NetworkCredential要添加到凭据缓存中。

例外

uriPrefixnull

-或-

authTypenull

多次添加相同的凭据。

示例

下面的代码示例使用多个安全凭据初始化一个 CredentialCache ,并将这些凭据与 a 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)

Source:
CredentialCache.cs
Source:
CredentialCache.cs
Source:
CredentialCache.cs
Source:
CredentialCache.cs
Source:
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

一个 String 标识主计算机。

port
Int32

指定要连接到Int32的端口的 Ahost

authenticationType
String

一个 String 标识连接到 host 使用 credential时使用的身份验证方案。

credential
NetworkCredential

NetworkCredential要添加到凭据缓存中。

例外

hostnull

-或-

authenticationTypenull

authenticationType 不是接受的值。

port 小于零。

示例

下面的代码示例使用多个安全凭据初始化, CredentialCache 以用于 SMTP,并将其中一个凭据与 A 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

注解

此方法将实例NetworkCredential与 SMTP 一起使用。CredentialCache 缓存按向其添加凭据的顺序存储凭据。 调用该方法时,它将返回通过匹配 /> 和 /> 选择的实例。 比较不区分大小写。

支持的值为 authenticationType “NTLM”、“Digest”、“Kerberos”和“Negotiate”。

使用此方法添加的凭据仅适用于 SMTP。 此方法不适用于 HTTP 或 FTP 协议。

适用于