Ich habe eine Webanwendung, die sich für interne Benutzer anders als externe verhalten sollte. Die Webanwendung ist über das Internet und somit selbstverständlich auch für die internen Benutzer verfügbar.Wie bekomme ich Browser-IP oder Hostname?
Alle Benutzer sind anonym, nicht authentifiziert, aber die Seite sollte für interne Benutzer anders als extern rendern. Was ich in meinem Code mache, ist die Verwendung Request.UserHostName
und dann Dns.GetHostEntry
. Das Ergebnis wird dann mit einer Einstellung in meiner web.config
verglichen (die so etwas wie *.mydomain.local
enthält). Wenn der Vergleich ein positives Ergebnis ergibt, rendere ich den HTML-Code, den der interne Benutzer sehen sollte, ansonsten rendere ich den HTML-Code, den der externe Benutzer sehen sollte.
Mein Problem ist jedoch, dass ich nicht immer den erwarteten Wert von Request.UserHostName
bekomme. auf der Entwicklungsseite bekomme ich die IP-number
(?) der Maschine mit dem Browser, aber auf der Kundenseite bekomme ich nicht die IP-number
des Benutzers Maschine, ich bekomme einige andere IP-number
. Die Browser haben keine Proxies oder ähnliches.
Sollte ich etwas anderes als Request.UserHostName
verwenden?