В моем настольном приложении на C # я вызываю веб-сервисы, разработанные на php. Я могу получить файл CA. Я не знаю, как вызвать веб-сервис через SSL и аутентифицировать сертификат. Что я должен передать серверу и что ожидать в ответе от сервера для аутентификации? Честно говоря, я понятия не имею.
РЕДАКТИРОВАТЬ:
По рекомендации: http://weblogs.asp.net/jan/archive/2003/12/04/41154.aspx
// Перед вызовом веб-сервиса
System.Net.ServicePointManager.CertificatePolicy = new MyPolicy ();
public class MyPolicy : ICertificatePolicy
{
X509Certificate clientCert = null;
public MyPolicy() {
clientCert = X509Certificate.CreateFromSignedFile(HTTPUtility.CERT_FILE);
}
public bool CheckValidationResult(ServicePoint srvPoint, X509Certificate certificate, WebRequest request, int certificateProblem)
{
Console.WriteLine("********* Into CheckValidationResult : " + certificate.ToString());
Console.WriteLine("####### Client Certificate : " + clientCert.ToString() + "\n" + "Subject = " + clientCert.Subject);
Console.WriteLine("Issuer : " + clientCert.Issuer + "\n Seral No : " + clientCert.GetSerialNumberString());
Console.WriteLine("Not Before : " + clientCert.GetEffectiveDateString() +" \n Not After : " + clientCert.GetExpirationDateString());
Console.WriteLine("Thumb Print : " + clientCert.GetPublicKeyString());
Console.WriteLine("######## EQuals SERVER CERT : " + clientCert.Equals(certificate));
// Force to return true
return true;
}
}
Является ли вышеуказанный метод проверки правильным? Если нет, то почему и каким может быть решение. Я также получаю это предупреждение: «System.Net.ServicePointManager.CertificatePolicy устарел:« CertificatePolicy устарел для этого типа, используйте вместо этого ServerCertificateValidationCallback ».
При этом как я могу узнать, что CheckValidationResult () вернул false?
Любая помощь высоко ценится.
Спасибо