我们正尝试通过HTTPS从远程系统访问Java Web服务到我们的.net客户端系统。我们遇到错误:
这可能是由于在HTTPS情况下未使用HTTP.SYS正确配置服务器证书。这也可能是由于客户端和服务器之间的安全绑定不匹配
有趣的是,它可以在SOAP UI中工作,但仅是Visual Studio的问题。为什么它可以在soap UI中工作,而不是在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;
}
答案 0 :(得分:0)
dotnet框架可能与支持的TLS版本有关。我所知道的,。 Net4.0与tls1.2不兼容,有关详细信息,请参考以下问题。
Which versions of SSL/TLS does System.Net.WebRequest support?
使用以下代码段设置配置。
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls11;
ServiceReference2.Service1Client client = new ServiceReference2.Service1Client();
client.ClientCredentials.ServiceCertificate.SslCertificateAuthentication =
new X509ServiceCertificateAuthentication()
{
CertificateValidationMode = X509CertificateValidationMode.None,
RevocationMode = X509RevocationMode.NoCheck
};
请随时告诉我是否有什么需要帮助的地方。