Request.ServerVariables ["SERVER_NAME"] est toujours localhost
Je suis l'élaboration d'un ASP.NET 3.5 application avec Visual Studio 2008.
Ma page par défaut a quelques redirection de code dans la méthode Page_Load:
protected void Page_Load(object sender, EventArgs e)
{
string sname = Request.ServerVariables["SERVER_NAME"].ToLower();
if (sname.ToLower().Contains("intranet"))
{
Response.Redirect("/intranet/Default.aspx");
}
else if ((sname.ToLower().Contains("extranet")))
{
Response.Redirect("/extranet/Default.aspx");
}
else {
Response.Redirect("/web/Default.aspx");
}
}
J'ai modifié mon fichier hosts afin que l'intranet et de l'extranet rediriger vers ma machine locale.
127.0.0.1 intranet
127.0.0.1 extranet
Je puis tapez l'URL http://extranet dans mon navigateur.
Cependant, le problème est que le serveur variable valeur renvoyée par la Demande.ServerVariables["SERVER_NAME"] est toujours "localhost" et non pas "extranet"
Toute aide sur la façon d'obtenir la bonne valeur?
Merci beaucoup
source d'informationauteur Gaizka Allende
Vous devez vous connecter pour publier un commentaire.
Demande.ServerVariables["HTTP_HOST"] obtient la valeur que je cherchais 🙂
Vous êtes de droite
Vous souhaitez récupérer l'adresse complète du site web que la demande est venu. Ne pas utiliser de "SERVER_NAME", utilisez "HTTP_HOST".
Lire ici,
http://www.requestservervariables.com/get-address-for-website
Server_Name
retourne le nom d'hôte du serveur, alias DNS ou une adresse IP telle qu'elle apparaît dans l'auto-référencement UrlPourquoi n'utilisez-vous pas
Request.URL
?Votre hôte uniquement les fichiers de rediriger les requêtes vers une adresse IP spécifique - vous ne pouvez pas modifier le requérant machines nom par leur montage.