CredentialCache::Add Method (String^, Int32, String^, NetworkCredential^)


The .NET API Reference documentation has a new home. Visit the .NET API Browser on to see the new experience.

Adds a NetworkCredential instance for use with SMTP to the credential cache and associates it with a host computer, port, and authentication protocol. Credentials added using this method are valid for SMTP only. This method does not work for HTTP or FTP requests.

Namespace:   System.Net
Assembly:  System (in System.dll)

void Add(
	String^ host,
	int port,
	String^ authenticationType,
	NetworkCredential^ credential


Type: System::String^

A String that identifies the host computer.

Type: System::Int32

A Int32 that specifies the port to connect to on host.

Type: System::String^

A String that identifies the authentication scheme used when connecting to host using cred. See Remarks.

Type: System.Net::NetworkCredential^

The NetworkCredential to add to the credential cache.

Exception Condition

host is null.


authType is null.


authType not an accepted value. See Remarks.


port is less than zero.

This method places a NetworkCredential instance for use with SMTP into the CredentialCache. The cache stores credentials in the order in which they are added to it. When the GetCredential(String^, Int32, String^) method is called, it returns a NetworkCredential instance that is selected by matching the host, port, and authType. The comparison is done case-insensitively.

The supported values for authType are "NTLM", "Digest", "Kerberos", and "Negotiate".

Credentials added with this method are only valid for use with SMTP. This method does not work for HTTP or FTP protocols.

The following code example initializes a CredentialCache with multiple security credentials for use with SMTP and uses one of those credentials with a SmtpClient.

  SmtpClient^ client = gcnew SmtpClient("ContosoMail", 45);
  MailAddress^ from = gcnew MailAddress("", "Sender Name");
  MailAddress^ to = gcnew MailAddress("", "Recepient Name");
  MailMessage^ message = gcnew MailMessage(from, to);

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

  NetworkCredential^ myCreds = gcnew NetworkCredential("username", "password", "domain");
  CredentialCache^ myCredentialCache = gcnew CredentialCache();        
      myCredentialCache->Add("ContoscoMail", 35, "Basic", myCreds);
      myCredentialCache->Add("ContoscoMail", 45, "NTLM", myCreds);

      client->Credentials = myCredentialCache->GetCredential("ContosoMail", 45, "NTLM");
catch(Exception^ e)
   Console::WriteLine("Exception is raised. ");
   Console::WriteLine("Message: {0} ",e->Message);

Universal Windows Platform
Available since 8
.NET Framework
Available since 2.0
Portable Class Library
Supported in: portable .NET platforms
Windows Phone Silverlight
Available since 8.1
Windows Phone
Available since 8.1
Return to top