在c#winApplication中使用SSL

时间:2010-07-13 10:46:13

标签: c# ssl

我需要使用SSL来建立与服务器的连接

描述: 我正在开发一个Windows应用程序项目,我们使用“Web服务”与数据库进行数据通信。 服务器端服务是用Java编写的,我在C#中做UI部分。现在我想使用SSL与服务器建立安全连接,但我找不到一种方法来跳过生成的警告消息尝试建立连接(使用c#代码)。

样本会对我有很大帮助,

这是我使用的代码:

public bool UserLogIn ( User user )
    {
        logon logIn = new logon();

        logIn.arg0 = new userAthenticationRq();
        logIn.arg0.credential = GetCredential(user);
        logIn.arg0.clientIpAddress = GetClientIP();
        logIn.arg0.requstDate = DateTime.Now;
        logIn.arg0.requstDateSpecified = true;
        logIn.arg0.userName = user.Name;

        logonResponse rsp = new logonResponse();

        ServicePointManager.ServerCertificateValidationCallback += new System.Net.Security.RemoteCertificateValidationCallback(ValidateRemoteCertificate);

        rsp = service.logon(logIn);//this is where the Exception Occurs


        if (rsp.@return.statusCode == statusCodeEnum.SUCCESS)
        .
        .
        .
    }

1 个答案:

答案 0 :(得分:0)

如果是关于无效SSL证书的错误,您可以使用以下方法绕过它:

将此添加到您的代码中

 // callback used to validate the certificate in an SSL conversation
private static bool ValidateRemoteCertificate(object sender, X509Certificate certificate,
    X509Chain chain, SslPolicyErrors policyErrors)
{
        return true;
}

然后添加它来调用它并接受所有证书:

// Adds validation of SSL Certificates
ServicePointManager.ServerCertificateValidationCallback += new RemoteCertificateValidationCallback(ValidateRemoteCertificate);