J'ai une application Web qui devrait se comporter différemment pour les utilisateurs internes que pour les utilisateurs externes. L'application Web est disponible sur Internet, et donc évidemment aussi pour les utilisateurs internes.Comment obtenir l'adresse IP ou le nom d'hôte du navigateur?
Tous les utilisateurs sont anonymes, non authentifiés, mais la page devrait afficher un rendu différent pour les utilisateurs internes que pour les utilisateurs externes. Ce que je fais dans mon code est l'utilisation Request.UserHostName
puis Dns.GetHostEntry
. Le résultat est ensuite comparé à un paramètre dans mon web.config
(qui contient quelque chose comme *.mydomain.local
). Si la comparaison donne un résultat positif, je rends le HTML que l'utilisateur interne devrait voir sinon je rends le code HTML que l'utilisateur externe devrait voir.
Cependant, mon problème est que je ne reçois pas toujours la valeur attendue de Request.UserHostName
. sur le site de développement, je reçois le IP-number
(?) de la machine exécutant le navigateur, mais sur le site du client, je ne reçois pas le IP-number
de la machine de l'utilisateur, je reçois un autre IP-number
. Les navigateurs n'ont aucun ensemble de proxies ou quelque chose comme ça.
Dois-je utiliser autre chose que Request.UserHostName
?