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; } |