visual studio references plugin jump code all c# visual-studio http ssl proxy

references - C#Visual Studio 2015: validación de certificados IWebProxy



visual studio code go to declaration (3)

Estoy intentando crear una DLL de proxy C # que permita a la comunidad VS2015, en mi estación de trabajo fuera de línea, acceder a Internet a través de un proxy HTTP corporativo con autenticación.

Siguiendo las instrucciones de esta publicación de blog de MSDN, puedo conectar VisualStudio a las páginas HTTP de esta manera:

namespace VSProxy { public class AuthProxyModule : IWebProxy { ICredentials crendential = new NetworkCredential("user", "password"); public ICredentials Credentials { get { return crendential; } set { crendential = value; } } public Uri GetProxy(Uri destination) { ServicePointManager.ServerCertificateValidationCallback = (Header, Cer, Claim, SslPolicyErrors) => true; return new Uri("http://128.16.0.123:1234", UriKind.Absolute); } public bool IsBypassed(Uri host) { return host.IsLoopback; } } }

Pero no puedo conectarme a la página de autenticación de la cuenta para acceder a la comunidad de Visual Studio.

Por lo tanto, estoy tratando de validar el certificado de Microsoft utilizando DLL.

¿Hay alguna forma en que pueda cumplir con HTTPS y la emisión de certificados?

¿Cómo puedo validar el certificado en la DLL webProxy?


Si desea omitir la verificación del certificado por completo, puede configurar su ServicePointManager.ServerCertificateValidationCallback para que siempre use un delegado que devuelva verdadero:

var validationCallback = new RemoteCertificateValidationCallback(delegate { return true; });

....

ServicePointManager.ServerCertificateValidationCallback += validationCallback;

Lo envolvería en una prueba / captura / finalmente y finalmente, eliminaré el delegado (ya que de lo contrario se aplica el iirc en todo el proceso):

finally { ServicePointManager.ServerCertificateValidationCallback -= validationCallback; }

ACTUALIZACIÓN 26/03/18: Si tiene control sobre la creación del HttpClient , puede pasar un HttpClientHandler cuando lo construya, con su delegado ServerCertificateCustomValidationCallback configurado para devolver verdadero. Está efectivamente limitando el efecto peligroso de deshabilitar la verificación de SSL en todo el proceso y limitándolo al uso de este HttpClient. Mucho más seguro. Código:

var handler = new HttpClientHandler(); // Optional check to enable / disable based on config setting. if (ConfigurationManager.AppSettings["EnableSslCertificateCheck"] == null || Convert.ToBoolean(ConfigurationManager.AppSettings["EnableSslCertificateCheck"]) == false) { handler = new HttpClientHandler { ClientCertificateOptions = ClientCertificateOption.Manual, ServerCertificateCustomValidationCallback = (httpRequestMessage, cert, cetChain, policyErrors) => true }; } return new HttpClient(handler);


Usted puede tener una empresa de certificado proxy SSL dio. Solo importa el uno en el certificado raíz en IE (es decir, http://www.instructables.com/id/Installing-an-SSL-Certificate-in-Windows-7/ , https://bto.bluecoat.com/webguides/sslv/sslva_first_steps/Content/Topics/Configure/ssl_ie_cert.htm )

O simplemente ignorar la validación de certificados a través de la configuración .Net

  1. cómo configurar ServicePointManager.ServerCertificateValidationCallback en web.config

  2. Cómo detener temporalmente los errores de certificado con los servicios WCF (respuesta de OzrenTkalcecKrznaric)

En el caso de Visual Studio 2015, el archivo de configuración de .Net se encuentra en "% PROGRAMFILES (x86)% / Microsoft Visual Studio 14.0 / Common7 / IDE / devenv.exe.config".

Espero que sea útil.


ServicePointManager.ServerCertificateValidationCallback Es el acceso principal para la validación de certificados de red en .Net. Si desea validar un certificado, debe hacerlo aquí. Lo que le sugiero es que enlace la devolución de llamada en otro lugar que no sea dentro del método GetProxy . Colóquelo donde inicialice el proxy y realice la validación de su certificado allí.