2010-01-26 12 views
0

Comment appeler un service web (créé en Java) avec sécurité ws, ils ont fourni un fichier de certificat, nom d'utilisateur & mot de passe, j'ai essayé d'utiliser Web Services Enhancements (WSE) 3.0, hérité du proxy de service de Microsoft.Web.Services3.WebServicesClientProtocol utilisé le mot de passe de nom d'utilisateur tocken.net appel WS-Security service Web activé (créé en Java)

UsernameToken tocken = new UsernameToken("uname", "pwd"); 
    Service.RequestSoapContext.Security.Tokens.Add(tocken); 

a reçu l'erreur « la connexion sous-jacente a été fermée: Impossible d'établir une relation de confiance pour le canal sécurisé SSL/TLS. »

Est-ce dû au certificat client? J'ASLO essayé

X509Certificate xCert = new X509Certificate(); 
    xCert = X509Certificate.CreateFromCertFile("certificate_path.cer"); 
    Service.ClientCertificates.Add(xCert); 
+0

WSE est chose ancienne WCF est une technologie qui le remplace –

+0

On ne sait pas de la question, quel aspect de ws-security est utilisé. Pour autant que je puisse voir, votre client s'attend à ce que le service utilise HTTPS et non le cryptage/la signature au niveau du message. Si c'est votre cas, essayez d'ajouter le certificat au stockage de certificats "trusted people". Et oui, utilisez WCF) –

Répondre

0

Je résolu la question de son becuase du problème de validation du certificat ssl, utilisé

UsernameToken token = new UsernameToken("uname", "pwd", PasswordOption.SendPlainText); 
Service.RequestSoapContext.Security.Tokens.Add(token); 
System.Net.ServicePointManager.CertificatePolicy = new TrustAllCertificatePolicy();   


    public class TrustAllCertificatePolicy : System.Net.ICertificatePolicy 
      { 
       public TrustAllCertificatePolicy() 
       { } 

       public bool CheckValidationResult(ServicePoint sp, 
       X509Certificate cert, WebRequest req, int problem) 
       { 

        return true; 
       } 
      }