Die Verwendung Request.Url.Hostist angemessen - auf diese Weise rufen Sie den Wert des HTTP- Host:Headers ab, der angibt, welchen Hostnamen (Domänennamen) der UA (Browser) wünscht, da der Ressourcenpfadteil der HTTP-Anforderung den Hostnamen nicht enthält.
Beachten Sie, dass localhost:5858es sich nicht um einen Domänennamen handelt, sondern um einen Endpunktspezifizierer, der auch als "Berechtigung" bezeichnet wird und den Hostnamen und die TCP-Portnummer enthält. Dies wird durch Zugriff abgerufen Request.Uri.Authority.
Darüber hinaus ist es nicht gültig zu bekommen somedomain.comaus , www.somedomain.comweil ein Webserver einen anderen Standort konfiguriert werden könnte , dienen , www.somedomain.comum im Vergleich somedomain.com, aber wenn Sie sind sicher , dass dies in Ihrem Fall gültig ist , dann werden Sie manuell die Hostnamen analysieren müssen, obwohl mit String.Split('.')Werken in eine Prise.
Beachten Sie, dass sich die Webserverkonfiguration (IIS) von der Konfiguration von ASP.NET unterscheidet und dass ASP.NET die HTTP-Bindungskonfiguration der Websites und Webanwendungen, unter denen es ausgeführt wird, überhaupt nicht kennt. Die Tatsache, dass sowohl IIS als auch ASP.NET dieselben Konfigurationsdateien ( web.config) verwenden, ist ein roter Hering.