2010-04-22 26 views
12

Nous avons des services OSB qui sont actuellement sécurisés avec un nom d'utilisateur et un mot de passe. Je reçois un 401 non autorisé lorsque je tente de générer un proxy de service en utilisant svcutil. Je sais que vous devez configurer un fichier svcutil.exe.config mais je ne trouve aucun exemple, sauf celui qui transmet un certificat.Passer le nom d'utilisateur et mot de passe à svcutil.exe?

Dows quelqu'un sait comment envoyer un nom d'utilisateur et mot de passe en utilisant svcutil?

Répondre

10

Je ne pense pas que vous puissiez le faire. Dans ce cas, vous pouvez soit vous connecter à cette adresse dans un navigateur et simplement télécharger et enregistrer le fichier WSDL sur votre disque local et appeler le svcutil.exe sur cette copie locale - ou demander à l'éditeur de ce service Web de donner vous une URL qui ne nécessite pas d'authentification, ou simplement vous envoyer les fichiers WSDL et éventuellement XSD pertinents afin que vous puissiez créer un proxy côté client pour ce service.

+0

Je suis valider ce que vous dites ici: http://msdn.microsoft.com/en-us/library/ms733775.aspx Note: Vous ne pouvez pas utiliser la configuration pour définir le nom d'utilisateur et mot de passe. La configuration affichée ici doit être augmentée en utilisant le code pour définir le nom d'utilisateur et le mot de passe. – webwires

9

Vous ne pouvez pas vous authentifier dans svcutil, mais vous pouvez définir des informations d'identification dans Windows pour la machine cible. Accédez à la page de gestion de votre compte, puis à vos informations d'identification stockées. Ajoutez une nouvelle entrée avec le nom d'hôte cible et les informations d'identification. Après cela, vous pouvez utiliser svcutil avec l'URL.

+0

Cela fonctionne! Très intelligent. Merci. Cependant, en pratique, je recommande à l'OP de télécharger le WSDL! Votre code est nécessairement couplé à l'interface de service de toute façon. Si l'interface de service change, la petite étape manuelle de la mise à jour du fichier wsdl sera triviale par rapport à la modification ou au test de votre code en relation avec les modifications réelles de l'interface de service. La mise à jour manuelle du WSDL vous permet de contrôler quand cela se produit. Le WSDL est un contrat, le consommateur doit savoir quand il change. – DanO

-2

Essayez ceci. Cela devrait fonctionner avec n'importe quelle page web nécessitant un nom d'utilisateur et un mot de passe.

svcutil http://user:[email protected]?wsdl 
+0

J'ai essayé ce format avec le nom d'utilisateur et le mot de passe intégrés dans l'URL, mais cela n'a pas fonctionné. –