X509CertificateInitiatorClientCredential.SetCertificate Method (String, StoreLocation, StoreName)


Allows you to specify the certificate to use to represent the service by specifying the subject distinguished name.

Namespace:   System.ServiceModel.Security
Assembly:  System.ServiceModel (in System.ServiceModel.dll)

public void SetCertificate(
	string subjectName,
	StoreLocation storeLocation,
	StoreName storeName


Type: System.String

Subject distinguished name.

Type: System.Security.Cryptography.X509Certificates.StoreLocation

The location of the certificate store the service uses to obtain the service certificate.

Type: System.Security.Cryptography.X509Certificates.StoreName

Specifies the name of the X.509 certificate store to open.

For more information on the subjectName parameter, see SubjectName.

Values for storeLocation are included in the StoreLocation enumeration:

  • LocalMachine: the certificate store assigned to the local machine (default).

  • CurrentUser: the certificate store used by the current user.

If the client application is running under a system account, then the certificate is typically in LocalMachine. If the client application is running under a user account, then the certificate is typically in CurrentUser.

Values for storeName are included in the StoreName enumeration.

The following code specifies the certificate to use.

// Create a WSHttpBinding and set its security properties. The
// security mode is Message, and the client is authenticated with 
// a certificate.
EndpointAddress ea = new EndpointAddress("http://contoso.com/");
WSHttpBinding b = new WSHttpBinding();
b.Security.Mode = SecurityMode.Message;
b.Security.Message.ClientCredentialType =

// Create the client with the binding and EndpointAddress.
CalculatorClient cc = new CalculatorClient(b, ea);

// Set the client credential value to a valid certificate.
    "CN=MyName, OU=MyOrgUnit, C=US",

.NET Framework
Available since 3.0
Return to top