How to connect to TFS through authenticated Web Proxy

Today I was in a customer where the internet access is provided by a WebProxy that requires credentials.

For some reason, although VS can navigate, the Team Explorer was not able to connect to our TFS server, because a 407 error (Proxy authentication required)

To fix this issue you need a custom proxy module that provides the credentials, so I created a simple DLL with this class:

 

 using System;
 using System.Net;
  
 namespace Rido.AuthProxy
 {
     public class AuthProxyModule : IWebProxy
     {
  
         ICredentials crendential = new NetworkCredential("proxy.user", "password");
  
         public ICredentials Credentials
         {
             get
             {
                 return crendential;
             }
             set
             {
                 crendential = value;
             }
         }
  
         public Uri GetProxy(Uri destination)
         {
             return new Uri("http://proxy:8080", UriKind.Absolute);
         }
  
         public bool IsBypassed(Uri host)
         {
             return host.IsLoopback;
         }
  
     }
 }

You should copy this DLL to the %PROGRAMFILES\Microsoft Visual Studio 10.0\Common7\IDE folder, and update the devenv.exe.config file to include the module:

 <system.net>
     <defaultProxy>
       <module type="Rido.AuthProxy.AuthProxyModule, Rido.AuthProxy"/>
     </defaultProxy>
   </system.net>