C# Connexion Par Proxy
Je travaille dans un bureau qui exige que toutes les connexions sur un proxy http. J'ai besoin d'écrire une application simple requête certaines valeurs à partir d'un serveur web - c'est simple si il n'y avait pas de proxy. Comment puis-je faire du C# proxy d'application-aware? Comment puis-je faire toute sorte de connexion via un proxy?
Vous devez vous connecter pour publier un commentaire.
C'est facilement réalisable soit par programme, dans votre code, ou de façon déclarative dans le web.config ou app.config.
Vous pouvez créer par programmation un proxy comme suit:
Vous êtes essentiellement de l'affectation de la
WebProxy
objet de larequest
de l'objetproxy
de la propriété. Cetterequest
utilise alors laproxy
vous définissez.Pour obtenir la même chose de manière déclarative, vous pouvez effectuer les opérations suivantes:
sein de votre site web.config ou app.config. Cela définit un proxy par défaut que toutes les requêtes http à utiliser. Selon exactement ce que vous devez atteindre, vous peut ou ne peut pas exiger certains des attributs supplémentaires de la defaultProxy /proxy élément, donc veuillez vous référer à la documentation de ceux-ci.
BypassProxyOnLocal
True à la propriété (si nécessaire) immédiatement après.Si vous utilisez
WebClient
, il a un Proxy propriété que vous pouvez utiliser.Comme d'autres l'ont mentionné, il existe plusieurs façons d'automatiser la configuration du proxy détection/utilisation
Web.Config:
Utilisation de la classe WebProxy comme décrit dans cet article.
Vous pouvez également cofigure les paramètres de proxy directement (config ou code) de votre application utilise ensuite ces.
Web.Config:
Code:
Si vous voulez de l'application pour utiliser le système de proxy par défaut, ajoutez ceci à votre Application.exe.config (où application.exe est le nom de votre application):
Plus de détails peuvent être trouvés dans la Article sur MSDN System.Net
Essayer ce code. Appeler avant de faire des requêtes http. Le code utilise le proxy à partir de vos Paramètres d'Internet Explorer - une chose cependant, j'utilise
proxy.Credentials = ....
parce que mon serveur proxy est un NTLM authentifié Internet Acceleration Server. Lui donner un aller.WebProxy.GetDefaultProxy
est obsolète depuis Framework 4.5 et cette méthode renvoie null. Mieux de réfléchir avant d'utiliserCredentialCache.DefaultNetworkCredentials
. Si vous avez mis quelque chose dans CredentialCache et votre proxy besoin de telles informations d'identification, puis il devrait fonctionner. Sinon, il ne va pas aider.Ce one-liner qui fonctionne pour moi:
CredentialCache.DefaultNetWorkCredentials
est l'définir les paramètres de proxy dans Internet Explorer.WebRequest.DefaultWebProxy.Credentials
est utilisé pour toutes les connexions internet de l'application.Foole de code a fonctionné parfaitement pour moi, mais dans .NET 4.0, n'oubliez pas de vérifier si le Proxy est NULL, ce qui signifie pas de proxy configuré (en dehors de l'environnement de l'entreprise)
Voici donc le code qui a résolu mon problème avec notre proxy d'entreprise
Ce code a fonctionné pour moi:
La détection automatique de proxy est un processus par lequel un serveur de proxy Web est identifié par le
système et utilisé pour envoyer des demandes de la part du client. Cette fonctionnalité est également connu comme
Web Proxy Auto-Discovery (WPAD). Lorsque la détection automatique de proxy est activé, le système
tente de trouver une configuration de proxy script qui est responsable du retour de l'ensemble de procurations qui peut être utilisé pour la demande.
http://msdn.microsoft.com/en-us/library/fze2ytx2.aspx
Je vais utiliser un exemple à ajouter aux réponses ci-dessus.
J'ai couru dans la procuration, tout en essayant d'installer des paquets via Web Platform Installer
Que trop utilise un fichier de configuration qui est WebPlatformInstaller.exe.config
J'ai essayé de le suggérer des modifications dans cette IIS forum qui est
et
Aucun de ces travaillées.
Ce qui a fonctionné pour moi a été ce -
Le module nécessaire pour être enregistrée avec Web Platform Installer pour l'utiliser.