ADVERTENCIA! Para cualquiera que use Current.Request .Url.Host. Comprenda que está trabajando según la PETICIÓN ACTUAL y que la solicitud actual NO SIEMPRE estará con su servidor y que a veces puede estar con otros servidores.
Así que si utiliza esto en algo así como, Application_BeginRequest() en Global.asax, entonces el 99.9% de las veces va a estar bien, pero el 0.1% podría obtener algo más que el nombre de host de su propio servidor.
Un buen ejemplo de esto es algo que descubrí no hace mucho tiempo. Mi servidor tiende a golpear http://proxyjudge1.proxyfire.net/fastenv de vez en cuando. Application_BeginRequest() maneja con gusto esta solicitud, por lo que si llama a Request.Url.Host cuando realiza esta solicitud, obtendrá de nuevo proxyjudge1.proxyfire.net. Algunos de ustedes podrían estar pensando "no duh", pero vale la pena señalarlo porque fue un error muy difícil de notar ya que solo ocurrió el 0.1% del tiempo: P
Este error me ha obligado a insertar el host de mi dominio como una cadena en los archivos de configuración
Tenga en cuenta que el "dominio actual" aquí es en realidad lo que el usuario-agente utilizado para llegar a su sitio, que en muchos casos es diferente de la "URL oficial" de su sitio, así como lo que el usuario final puede haber ingresado en su navegador (proxy inverso, proxy directo, nombre de host interno, IP dirección, ...). – bzlm
Entonces, ¿hay alguna manera de obtener la "URL oficial" (la de IIS?) –