2010-07-13 3 views
0

je dois utiliser SSL t faire une connexion au serveurUtilisation de SSL dans C# winApplication

Description: Je travaille sur un projet d'application Windows dans laquelle nous utilisons « Service Web » pour communiquer des données avec le db . les services côté serveur sont écrits en Java et je fais la partie de l'interface utilisateur en C# .Maintenant, je veux utiliser SSL pour avoir une connexion sécurisée avec le serveur, mais je ne trouve pas un moyen de passer le message d'avertissement qui est produit lorsque vous essayez d'établir une connexion (en utilisant le code C#).

un échantillon me aiderait beaucoup,

c'est le code que j'utilise:

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 ([email protected] == statusCodeEnum.SUCCESS) 
     . 
     . 
     . 
    } 
+0

Est-ce une erreur concernant un certificat SSL invalide? – w69rdy

+0

Voir [Comment ignorer une erreur de certificat avec C# 2.0 WebClient - sans le certificat] (http://stackoverflow.com/questions/1301127/how-to-ignore-a-certificate-error-with-c-2-0 -webclient-without-the-certificate) –

+0

Vous n'avez pas besoin de poster votre email dans le cadre d'une question. Je l'ai enlevé ... –

Répondre

0

Si son erreur sur les certificats SSL non valide, vous pouvez le contourner en utilisant ceci:

Ajouter ceci à votre code

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

et d'ajouter cela pour l'appeler et accepter tout certi ficates:

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

Merci pour la réponse, J'ai utilisé ce code mais quand j'essaye d'appeler le service j'obtiens une exception (WebException) avec un message d'erreur comme "La demande a échoué avec une réponse vide" . – shahab

+0

Utilisez-vous une adresse https ou http? Jetez un oeil ici http://bytes.com/topic/net/answers/826258-web-service-request-failed-empty-response – w69rdy

+0

J'utilisais Http ... quand je l'ai changé en Https Cela a fonctionné !!! Apparemment, le problème est résolu. Merci beaucoup – shahab