L'appel de service web en C# à l'aide de SSL '(401) non autorisé"
Je suis d'appeler une méthode sur un service web à partir de derrière un serveur proxy en utilisant le code suivant:
myWebService.TestWebService webservice = new myWebService.TestWebService();
webservice.Url = "http://test.com/webservice?wsdl";
WebProxy proxy = new WebProxy("1.2.3.4", 8080);
proxy.Credentials = new NetworkCredential("username", "password");
webservice.Proxy = proxy;
string response = webservice.TestWebMethod();
Cela fonctionne bien lors de l'utilisation de HTTP, je reçois la réponse que j'attends la réponse de la chaîne.
Toutefois - si je change l'URL de HTTPS puis-je obtenir un (401 non autorisé réponse.
Si j'ai mis l'URL dans mon navigateur, il fonctionne très bien en mode HTTP ou HTTPS.
J'ai ajouté du code pour gérer le certificat SSL de validation par la création d'un System.Net.ServicePointManager.ServerCertificateValidationCallback
délégué, mais le code ne va jamais aussi loin. La demande est rejetée avant qu'il valide le certificat semble-t-il.
Toute aide est vraiment apprécié...
- J'ai mis à jour ma réponse.
- Pouvez-vous mettre à jour de la question avec les détails supplémentaires (par exemple ce qui se passe dans VS lorsque vous essayez d'ajouter la référence)?
Vous devez vous connecter pour publier un commentaire.
Avez-vous besoin d'informations d'identification pour accédez à l'url SSL?
Si vous avez donc besoin du service web identification.
Avez-vous essayé d'ajouter une référence web dans Visual Studio à l'aide de l'url SSL?
Si vous ne pouvez pas ajouter une référence web par le biais de Visual Studio, puis le code ne va pas au travail.
Pouvez-vous vous assurer que la dernière chose que vous définissez est le proxy (par exemple de changer l'url avant de définir le proxy)?
Il ya une petite chance que le proxy peut être perdu, ce devrait être la dernière chose à essayer
Voici un exemple en utilisant un client cert (qui, je suis sûr que vous n'en avez pas besoin), mais pourrait permettre de mieux comprendre & aide des informations d'identification à un service web.
Avez-vous également vérifié le certificat SSL est valide - je devine que vous le voir lorsque vous le frappez à travers le navigateur, mais il pourrait être la cause du problème en essayant de le frapper par programmation.