Sets the certificate-validation callback.
Namespace: NetricsServerInterface
Assembly: NetricsServerInterface (in NetricsServerInterface.dll)
Syntax
Visual Basic (Declaration) |
---|
Public�Sub�setCertificateValidator(�_� ���ByVal�certValidator�As�RemoteCertificateValidationCallback�_� ) |
C# |
---|
public�void�setCertificateValidator( ���RemoteCertificateValidationCallback�certValidator ) |
C++ |
---|
public: �void�setCertificateValidator( ���RemoteCertificateValidationCallback�certValidator )�sealed� |
J# |
---|
public�void�setCertificateValidator( ���RemoteCertificateValidationCallback�certValidator ) |
JScript |
---|
public�
function�setCertificateValidator( ���certValidator�:�RemoteCertificateValidationCallback ) |
Parameters
- certValidator
- The callback used to filter validation.
Remarks
The default is
Example
A sample custom certificate validator for self-signed certificates:
� | ![]() |
---|---|
private static bool validateSelfSignedCertificate(object sender, X509Certificate certificate, X509Chain chain, SslPolicyErrors sslPolicyErrors) { if (sslPolicyErrors == SslPolicyErrors.None) return true; // A self-signed certificate should have exactly one chain status entry, // and that entry should be "untrusted root" if ((sslPolicyErrors & SslPolicyErrors.RemoteCertificateChainErrors) != 0) { if ((chain.ChainStatus.Length == 1) && (chain.ChainStatus[0].Status == X509ChainStatusFlags.UntrustedRoot)) { // The one acceptable case sslPolicyErrors -= SslPolicyErrors.RemoteCertificateChainErrors; } else { Console.WriteLine("{0} cert chain errors", chain.ChainStatus.Length); foreach (var chainStatus in chain.ChainStatus) { X509ChainStatusFlags xflags = chainStatus.Status; Console.WriteLine("\t" + chainStatus.Status); Console.WriteLine("\t" + chainStatus.StatusInformation); } return false; } } // Self-signed certificates likely won't match the "domain name" sslPolicyErrors = sslPolicyErrors & ~SslPolicyErrors.RemoteCertificateNameMismatch; if (sslPolicyErrors == SslPolicyErrors.None) return true; Console.WriteLine("Certificate error: {0}", sslPolicyErrors); return false; } |