Export (0) Print
Expand All

CredentialCache.Add Method (String, Int32, String, NetworkCredential)

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)

public void Add(
	string host,
	int port,
	string authenticationType,
	NetworkCredential credential
)

Parameters

host
Type: System.String

A String that identifies the host computer.

port
Type: System.Int32

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

authenticationType
Type: System.String

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

credential
Type: System.Net.NetworkCredential

The NetworkCredential to add to the credential cache.

ExceptionCondition
ArgumentNullException

host is null.

-or-

authType is null.

ArgumentException

authType not an accepted value. See Remarks.

ArgumentOutOfRangeException

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 = 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 e-mail 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);
		    }

Windows 7, Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP Starter Edition, Windows Server 2008 R2, Windows Server 2008, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98

The .NET Framework and .NET Compact Framework do not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.

.NET Framework

Supported in: 3.5, 3.0, 2.0

Community Additions

ADD
Show:
© 2014 Microsoft