“Le formulaire de test est uniquement disponible pour les demandes provenant de l’ordinateur local.”

J’ai créé un service Web dans .Net. Par conséquent, l’adresse du fichier de service contient une explication astucieuse générée automatiquement. Lorsque je lance la page depuis la machine sur laquelle elle est hébergée, elle a même un formulaire que je peux utiliser pour envoyer des valeurs de test au service. Toutefois, sur les machines distantes, il masque le formulaire et affiche le message comme indiqué ci-dessus.

Y a-t-il un point à cela? J’ai vu d’autres sites appeler cela “plus sécurisé”, mais n’importe qui peut créer ses propres formulaires facilement, ce qui en fait une nuisance si vous me le demandez.

Si vous publiez des métadonnées et que celles-ci constituent un service Web public / non sécurisé, vous avez raison, il serait assez facile pour quiconque de générer un client simple pour éliminer votre service Web. Dans ce cas, le client Web généré uniquement sur l’ordinateur local semble être une nuisance.

Si votre service est privé et sécurisé, ce serait une énorme faille de sécurité, en donnant à toute personne ayant le nom du serveur et du service un client authentifié à utiliser pour potentiellement accéder à vos données et faire toutes sortes de dommages.

J’imagine que la politique de génération de l’interface utilisateur pour les services Web ASMX uniquement sur le serveur lui-même était une tentative de fournir de bons outils tout en éliminant les failles de sécurité accidentelles. WCF a éliminé cela dans tous les cas, vous pouvez générer des clients uniquement si les métadonnées sont publiées, et ils doivent implémenter la sécurité correcte pour accéder aux services.

Vous pouvez contourner ce problème en modifiant votre web.config pour inclure ces noeuds:

           

Cela vous permettra de visiter le service Web .asmx via votre navigateur. Vous pouvez ensuite appeler les services Web directement dans votre navigateur, transmettre des arguments et afficher les résultats.

Juste pour info, j’utilise .NET 4.0 et j’ai le même problème.

Cependant j’ai utilisé …

     

Dans ces mêmes domaines et cela a fonctionné. Mais avec juste HttpGet et HttpPost ce n’est pas le cas.

entrer la description de l'image ici

HTTP GET et HTTP POST sont désactivés par défaut