I'm using the below code (trimmed a bit of unimportant stuff out) to check a given page on a site, and validate the server certificates. However, it seems to not call the callback at all for some sites, despite the url being https, and manual checking of the site indicates a valid certificate.
I'm using an instance level function and a mutex so I can ensure that I'm checking one at a time. I've even stepped through the code, and the callback just doesn't get called for some sites.
Any ideas why?
Dino
private bool checkedCertificate;
public void RunTest(object url)
{
Mutex mutex = new Mutex(false, "WebsiteLock");
mutex.WaitOne();
try
{
HttpWebRequest httpWebRequest = (HttpWebRequest) WebRequest.Create(url.ToString());
ServicePointManager.ServerCertificateValidationCallback = this.ValidateServerCertificate;
checkedCertificate = false;
HttpWebResponse httpWebResponse = (HttpWebResponse) httpWebRequest.GetResponse();
}
finally
{
mutex.ReleaseMutex();
}
}
public bool ValidateServerCertificate(
object sender,
X509Certificate certificate,
X509Chain chain,
SslPolicyErrors sslPolicyErrors)
{
checkedCertificate = true;
// Allow this client to communicate with unauthenticated servers
return true;
}
}
}
===================================
View archives and manage your subscription(s) at
http://peach.ease.lsoft.com/archives
opensubscriber is not affiliated with the authors of this message nor responsible for its content.