X509ClientCertificateAuthentication.CertificateValidationMode Property

Definition

Gets or sets the certificate validation mode.

C#
public System.ServiceModel.Security.X509CertificateValidationMode CertificateValidationMode { get; set; }

Property Value

One of the X509CertificateValidationMode values.

Examples

The following example uses the CertificateValidationMode to print to the screen.

C#
// Create a service host.
Uri httpUri = new Uri("http://localhost/Calculator");
ServiceHost sh = new ServiceHost(typeof(Calculator), httpUri);

// Create a binding that uses a certificate.
WSHttpBinding b = new WSHttpBinding(SecurityMode.Message);
b.Security.Message.ClientCredentialType =
    MessageCredentialType.Certificate;

// Get a reference to the authentication object.
X509ClientCertificateAuthentication myAuthProperties =
    sh.Credentials.ClientCertificate.Authentication;

switch (myAuthProperties.CertificateValidationMode)
{
    case X509CertificateValidationMode.ChainTrust:
        Console.WriteLine("ChainTrust");
        break;
    case X509CertificateValidationMode.Custom:
        Console.WriteLine("Custom");
        break;
    case X509CertificateValidationMode.None:
        Console.WriteLine("ChainTrust");
        break;
    case X509CertificateValidationMode.PeerOrChainTrust:
        Console.WriteLine("PeerOrChainTrust");
        break;
    case X509CertificateValidationMode.PeerTrust:
        Console.WriteLine("PeerTrust");
        break;
    default:
        Console.WriteLine("Default");
        break;
}

The property can also be set in a configuration file.

<serviceCredentials>  
  <clientCertificate>  
     <authentication certificateValidationMode='ChainTrust' />  
  </clientCertificate>  
</serviceCredentials>  

Remarks

Allowed values of X509CertificateValidationMode are:

Applies to

Product Versions
.NET Framework 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1