Поделиться через


CredentialCache.Add Метод

Определение

Добавляет экземпляр NetworkCredential в кэш учетных данных.

Перегрузки

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

Добавляет экземпляр 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

Схема проверки подлинности, которая используется ресурсом, названным в uriPrefix.

cred
NetworkCredential

Экземпляр NetworkCredential, добавляемый в кэш учетных данных.

Исключения

uriPrefix имеет значение null.

-или-

authType имеет значение null.

Те же учетные данные добавляются несколько раз.

Примеры

Следующий пример кода инициализирует 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 помещает NetworkCredential экземпляр для использования с протоколами, отличными от SMTP, в CredentialCache. В кэше хранятся учетные данные в том порядке, в котором они добавляются в него. При вызове GetCredential(Uri, String) метода возвращается соответствующий NetworkCredential экземпляр.

Применяется к

Add(String, Int32, String, NetworkCredential)

Исходный код:
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

Объект String, определяющий компьютер.

port
Int32

Значение Int32, которое обозначает порт, через который следует подключаться к host.

authenticationType
String

Строка String, указывающая схему проверку подлинности, используемую при подключении к host с использованием cred.

credential
NetworkCredential

Экземпляр NetworkCredential, добавляемый в кэш учетных данных.

Исключения

host имеет значение null.

-или-

authType имеет значение null.

authType не является приемлемым значением.

Значение параметра port меньше нуля.

Примеры

В следующем примере кода инициализируется CredentialCache с несколькими учетными данными безопасности для использования с SMTP и используется один из этих учетных данных с 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) метода возвращается экземпляр, выбранный NetworkCredential путем сопоставления host, portи authType. Сравнение выполняется без учета регистра.

Поддерживаемые значения для authType : "NTLM", "Digest", "Kerberos" и "Negotiate".

Учетные данные, добавленные с помощью этого метода, допустимы только для использования с SMTP. Этот метод не работает для протоколов HTTP или FTP.

Применяется к