/ / La solicitud https falla con .Net Framework 2.0 pero funciona con .Net 4.0 - asp.net, .net-4.0, proxy, .net-2.0, httprequest

La solicitud https falla con .Net Framework 2.0 pero funciona con .Net 4.0 - asp.net, .net-4.0, proxy, .net-2.0, httprequest

Mi aplicación asp.net 2.0 realiza una solicitud https interna a otra URL para obtener una cookie válida en la respuesta.

Cuando pruebo esto en la .Net 2.0 framework no se devuelve ninguna cookie, sin embargo, con .Net 4 funciona. No hay ninguna excepción en la respuesta, pero mi intuición es que está relacionada con el proxy de la empresa y que es https. ¿Hay alguna sugerencia además de actualizar a .Net 4.0 (gran tarea)?

        string ticketissuerURL = "https://Securesite";
ServicePointManager.Expect100Continue = false;

HttpWebRequest request = (HttpWebRequest)WebRequest.Create(ticketissuerURL);

// Set some reasonable limits on resources used by this request
request.MaximumAutomaticRedirections = 4;
request.MaximumResponseHeadersLength = 4;
request.KeepAlive = true;
request.AllowAutoRedirect = false;
request.PreAuthenticate = true;

// Pass in current credentials
request.UserAgent = "Mozilla/4.0 (Windows)";

HttpWebResponse response = (HttpWebResponse)request.GetResponse();

Respuestas

1 para la respuesta № 1

He revisado tu código para esto sitio Como fuente de cookie. Las cookies se establecieron apropiadas para ambos marcos en la respuesta de propiedad. Cabeceras. Puede crear un contenedor de cookies para que sean visibles en respuesta.

request.CookieContainer = new CookieContainer();

Así que parece que el problema es algo más, tal vezel proxy o la implementación han cambiado en .net 4.0 (y agrega encabezados adicionales que lo hacen funcionar en .net 4.0 para su servicio). Creo que es una buena idea inspeccionar solicitudes reales. Le sugiero que descargue herramienta de violinista y habilitar el descifrado https y las siguientes solicitudes de comparación desde ambos marcos.

Recuerda agregar esta línea al comienzo de tu código.

WebProxy proxy = new WebProxy("localhost:8888");

dejar que el violinista inspeccione sus peticiones.