Tenemos un sitio servido en una granja de servidores web. La granja está detrás de un Accellerator SSL que maneja el cifrado. Esto significa que nuestros servidores IIS ven todas las conexiones entrantes como http, aunque todos los usuarios se conectan al sitio a través de https.¿Cómo forzo a ScriptManager a servir scripts de CDN sobre SSL?
Estamos comenzando a utilizar la propiedad EnableCDN = true de ScriptManager. Mientras que en nuestros entornos de desarrollo donde no hay Accellerator SSL, las referencias a los archivos js en el CDN se representan con https, en el entorno de producción se procesan inseguramente sobre http, lo que hace que js se bloquee con "Solo se muestra contenido seguro" "errores"
A menos de actualizar manualmente todas las referencias de scripts en scriptmanager o volver a escribir el código HTML en el camino a través de un módulo, ¿alguien sabe de una manera de obligar al scriptmanager a presentar sus referencias a través de https?
EDIT:
Después de hacer algunas reflector opinión, no creo que esto es posible. He puesto el siguiente truco en su lugar, sin embargo, esto es obviamente frágil, ya que implica el acceso a un campo privado. Si alguien puede ver una mejor manera, me encantaría escucharla.
var secureConnectionField = ScriptManager.GetType().GetField("_isSecureConnection", BindingFlags.Instance | BindingFlags.NonPublic);
if (secureConnectionField != null)
secureConnectionField.SetValue(ScriptManager, true);
Yo no lo he probado para el caso que usted describe, pero hay unos pocos lugares en HTML/JS donde se puede omitir el protocolo y el navegador va a solicitar la URL utilizando el mismo protocolo que para la página que contiene Por ejemplo, "//cdn.mydomain.com/myfile.js" – RickNZ
Gracias por la punta, pero en este caso no controlo la url rendido - que se ha registrado en los archivos DLL marco. No creo que haya que decirle al administrador de scripts que omita el protocolo al representar las referencias de CDN. –
ScriptManager es un control, por lo que debe ser capaz de construir, ya sea un adaptador de control que anular la lógica de generación de ruta, o tal vez construir un nuevo control que hereda de la original, y utilizar la asignación de etiquetas para reemplazar dinámicamente en su aplicación. – RickNZ