Comment ajouter une référence de service dans Visual Studio 2008 en s'authentifiant par rapport à un service Web protégé par mot de passe
Je veux faire référence à un service web, et il faut user/pass d'authentification.
Dans VS 2008, si j'essaie de "ajouter une référence", ou "ajouter une référence de service", tout ce que je peux taper l'URL, il n'y a aucune façon de mon entrée d'informations d'identification. Évidemment, si j'essaie de charger le ws, il me montre un beau message:
La demande a échoué avec l'état HTTP 403: Forbidden.
Les métadonnées contiennent une référence qui ne peut pas être résolu:
La requête HTTP est autorisée avec le schéma d'authentification client "Anonyme". L'en-tête d'authentification reçues du serveur a été " Basic realm="weblogic"'.
Le serveur distant a retourné une erreur: (401 non autorisé.
Donc ma question est: Est-il possible (à l'aide de VS 2008) pour ajouter une référence à un service web qui sont protégées? Comment?
source d'informationauteur ditto1977
Vous devez vous connecter pour publier un commentaire.
Il semble que vous essayez d'utiliser un site Web de Référence, et non pas un Service de Référence (bien que je crois qu'une Référence Web est un type de Service de Référence). Dans VS08, après avoir lancé le "Ajouter une Référence de Service", tapé l'URL du service web, cliquez sur le bouton "Avancé", puis cliquez sur "Ajouter une Référence Web". Tapez de nouveau l'URL, puis cliquez sur "Ajouter une Référence Web". Maintenant, vous devriez avoir un site web de référence au lieu de cela, alors l'authentification est similaire à ci-dessous:
En fonction de la façon dont le service est authentifié, vous pouvez peut-être sol.
Si il utilise ASP.Net d'adhésion, pas de joie à être trouvé. Si le code de service est le vôtre, temporairement désactiver l'authentification à générer un proxy.
Sinon, essayez d'utiliser un mécanisme standard:
Meilleur choix: Obtenir le WSDL à partir de votre fournisseur et de l'utilisation wsdl.exe pour générer votre proxy.
Mise à jour en réponse à un commentaire:
Oui, se moquant de la prestation afin de générer un proxy est parfaitement raisonnable plan, Si la cible est un service de ASP.net service ou seulement accepte et renvoie des types simples.
Le service web constructeur a une surcharge qui accepte un Uri ou vous pouvez simplement modifier le source généré.
Si vous choisissez de modifier le source généré, vous voudrez probablement juste de l'extrait de la classe de proxy et de supprimer le webservice de référence:
Après avoir générer le proxy avec VS, si vous "afficher tous les fichiers" et de forage vers le bas dans le WebService de Référence, vous trouverez un fichier appelé
Reference.cs
. C'est le seul fichier dont vous avez besoin. Copier le contenu d'un autre fichier et puis il suffit de supprimer la référence du service web.Si vous faites cela, vous pouvez éventuellement ajouter votre logique d'authentification sur le proxy à ce point.
Mais encore une fois, obtenir le WSDL de l'éditeur est votre meilleur pari.
Bonne chance.
Réponse tardive, mais vous pouvez également le faire si vous ouvrez votre site dans Visual Studio navigateur web et connectez-vous. Ne fonctionne que si votre auth modèle prend en charge les cookies.
Si vous générez le code avec WSDL vous pouvez remplacer le GetWebRequest() méthode qui vous permettra d'ajouter l'en-tête d'Autorisation