Consumir una URL a través de un Proxy usando Certificados

Esta duda surgió ya que en mi trabajo el internet es a través de un proxy, pero por llevar poco tiempo en la empresa aun no tengo privilegios para navegar en internet, asi que tuve que crear un proxy y usar el usuario y contraseña de un compañero para poder probar lo que estaba haciendo, uno de los problemas que me encontre es que el certificado no funcionaba y esto fue ya que desde la version 1.1 con un Service Pack especifico si se intenta usar un certificaco en una pagina cuya direccion es distinta a la que dice en el certificado da error, es decir, la dirección a la que tenia q acceder era una ip 172.23.233.12 pero en el certificado decía que era una pagina www.mipagina.com, gracias a "San Google" pude encontrar la respuesta…

Ahi se los dejo, espero les Sirva…

 

//Hay q forzar a aceptar el certificado, ya que
//el nombre que se utiliza en la solicitud HTTP no
//coincide con el nombre del servidor que se emite con el certificado SSL 
System.Net.ServicePointManager.CertificatePolicy = new MyPolicy();
WebProxy proxy = new WebProxy("http://servidorconproxy:8080/",true);
proxy.Credentials = new NetworkCredential("user","password");
System.Net.HttpWebRequest hr=System.Net.WebRequest.Create(https://www.unapagina.com) as System.Net.HttpWebRequest ;
hr.Proxy = proxy;
HttpWebResponse o=hr.GetResponse() as HttpWebResponse;
Stream stream= o.GetResponseStream();
 XmlDocument xD= new XmlDocument();
xD.Load(stream);
XmlNode n; 
n = xD.SelectSingleNode("InvoiceConfirmationRS"); 

object aver=n;

using System.Net;

using System.Security.Cryptography.X509Certificates;

namespace WebApplication1

{

/// <summary>

/// Fuerza a aceptar Certificados cuya url es distinta de la pagina que se esta viendo

/// </summary>

//Hay q forzar a aceptar el certificado, ya que

//el nombre que se utiliza en la solicitud HTTP no

//coincide con el nombre del servidor que se emite con el certificado SSL

public class MyPolicy : ICertificatePolicy

{

public bool CheckValidationResult(

ServicePoint srvPoint ,

X509Certificate certificate

, WebRequest request

, int certificateProblem)

{

//Return True to force the certificate to be accepted.

return true;

} // end CheckValidationResult

} // class MyPolicy

}

¿Disfrutaste esta entrada? Por qué no dejas un comentario abajo y continúas la conversación, o te suscribes a mi feed y obtienes artículos como este enviados a tu lector de feeds.

Comentarios

cdaj xktzhd xchlk rftnxk
http://bleach-xxx.silversmog.cn bleach xxx

Deja un Comentario

(requerido)

(requerido)