Wie erhalten Sie die IP-Adresse des Benutzers in Castle MVC (Einschienen)?
-
01-10-2019 - |
Frage
In einer Controller-Aktion einer CastleMVC Anwendung, wie kann ich den IP-Adresse des Benutzers?
I denkt in asp.net MVC wäre es Request.ServerVariables["REMOTE_ADDR"]
sein, aber ich kann kein Äquivalent in Burg finden.
(Ich bin mir bewusst potenzielle Proxy-Ausgabe des usw., die Adresse, das in der Anforderung gemeldet ist in Ordnung)
Lösung
Schloss Einschienenbahn, sowie ASP.NET MVC, dient als elegante MVC Haut über die ASP.NET-Laufzeit.
Als solches alles, was mit der ASP.NET-Laufzeit durchgeführt werden kann (außer WebForms spezielle Sachen wie Viewstate) kann auch mit ASP.NET MVC und mit Einschienen erfolgen.
So können Sie immer die aktuelle ASP.NET des greifen Httpcontext mit der statischen HttpContext.Current Methode.
Von Einschienenbahn, können Sie auch die .UnderlyingContext Eigenschaft IEngineContext verwenden, um die ASP.NET Httpcontext zugreifen zu können.
Insbesondere in Einschienen, können Sie die Kunden greifen IP berichtet die Bequemlichkeit Eigenschaft UserHostAddress auf dem aktuellen IRequest verwendet wird.
z. innerhalb einer Aktion des Controllers:
var clientIP = Request.UserHostAddress;
Andere Tipps
Ich glaube, sein:
HttpContext.Request.ServerVariables["REMOTE_ADDR"]