Ошибка при доступе к удаленному сервису в .net - PullRequest
0 голосов
/ 20 декабря 2018

Мы пытаемся получить доступ к веб-службе java через HTTPS из удаленной системы в нашей клиентской системе .net. Мы сталкиваемся с ошибкой:

Это может быть связано с тем, что сертификат серверанеправильно настроен с HTTP.SYS в случае HTTPS.Это также может быть вызвано несоответствием привязки безопасности между клиентом и сервером.

Интересно, что он работает в интерфейсе SOAP, но проблема только в Visual Studio. Почему он работает в мыле?Пользовательский интерфейс скорее не в Visual studio2010

protected void Page_Load(object sender, EventArgs e)
    {
        try
        {
            ServicePointManager.ServerCertificateValidationCallback += new System.Net.Security.RemoteCertificateValidationCallback(CertificationvAlidatefunction);
            mainclass.ClientCredentials.UserName.UserName = "testuser";
            mainclass.ClientCredentials.UserName.Password = "test123";


            response = mainclass.Testmethod(request);

        }
        catch (Exception ex)
        {
            Response.Write(ex.Message);
        }
    }
  private bool CertificationvAlidatefunction(object sender, System.Security.Cryptography.X509Certificates.X509Certificate certificate,
      System.Security.Cryptography.X509Certificates.X509Chain chain, SslPolicyErrors errors)
    {
        return true;

}

1 Ответ

0 голосов
/ 21 декабря 2018

Возможно, структура dotnet связана с поддерживаемой версией TLS.Насколько я знаю,.Net4.0 не совместим с tls1.2, вы можете обратиться к следующему вопросу для получения подробной информации.
Какие версии SSL / TLS поддерживает System.Net.WebRequest?
НастройкаКонфигурирование с использованием следующих фрагментов кода.

 ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls11;
            ServiceReference2.Service1Client client = new ServiceReference2.Service1Client();
            client.ClientCredentials.ServiceCertificate.SslCertificateAuthentication =
 new X509ServiceCertificateAuthentication()
 {
     CertificateValidationMode = X509CertificateValidationMode.None,
     RevocationMode = X509RevocationMode.NoCheck
 };

Не стесняйтесь, дайте мне знать, если есть что-то, с чем я могу помочь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...