2010-04-16 6 views
0

Je tente de consommer un service Web Java qui utilise un certificat. Je pourrais générer le proxy, en ajoutant la référence de service. Le problème est: Il a besoin de l'en-tête d'autorisation HTTP de base. Il est nécessaire de chiffrer l'utilisateur/mot de passe et de les transmettre dans l'en-tête.Consommation de services Web Java à l'aide du client .NET

Merci.

Répondre

1

Cela dépend de la version de .NET que vous utilisez.

Si vous pouvez utiliser WCF, tout ce que vous avez à faire est de changer la liaison, de transmettre les informations d'identification et de laisser le framework faire le travail.

Vous pouvez trouver les instructions de configuration ici (vous avez seulement besoin de la deuxième moitié pour la configuration du client):

Transport Security with Basic Authentication - MSDN

Sinon, vous pouvez télécharger Web Service Extensions (WSE) 3.0 et l'utiliser pour l'authentification simple.

Implementing Direct Authentication with UsernameToken in WSE 3.0

+0

Merci pour la solution WCF. A travaillé en utilisant les composants ServiceModel, dans le client (Windows Forms). Pour l'autorisation, je viens d'activer la liaison pour utiliser la sécurité de base, et transmis dans les informations d'identification du client. – Erup

0

Il semble que le Java webservice utilise le protocole SSL TLS au lieu de l'ancien protocole SSL scolaire. Vous n'avez pas besoin de "crypter le nom d'utilisateur et le mot de passe du certificat dans l'en-tête". Je ne sais pas où vous avez entendu cela. Si c'est un certificat standard qui fait partie du keystore de Java par défaut, alors Java a déjà le mot de passe intégré.

Dans le cas où i est un cert autosigné (à la fin du service Web), vous devrez peut-être indiquer à C# de faire confiance au certificat auto-signé. En outre, les «informations d'identification» auxquelles vous faites référence ne sont pas le nom d'utilisateur + le mot de passe, mais plutôt la charge utile de la clé privée.

+0

Je pense que vous n'avez pas eu ce que je voulais dire, mais c'est correct. Je veux dire que dans l'en-tête personnalisé, il fallait passer les informations d'identification. J'ai déjà ajouté le certificat dans des certificats de confiance. – Erup

+0

Pour forcer l'application à approuver le certificat, j'ai utilisé la solution de contournement décrite ici: http://www.ben-morris.com/asp-net-web-services-and-ssl-certificates-establishing-a-trust-relationship – Erup

Questions connexes