Как вы получаете IP-адрес пользователя в замке MVC (монорельс)?
Как получить IP-адрес пользователя в действии контроллера приложения CastleMVC?
Я думаю, что в asp.net MVC это было бы Request.ServerVariables["REMOTE_ADDR"]
, но я не могу найти эквивалент в замке.
(Я знаю о возможных проблемах с прокси и т. Д., Адрес, указанный в запросе, в порядке)
2 ответа
Монорельс замка, а также ASP.NET MVC служат элегантной оболочкой MVC для среды выполнения ASP.NET.
Таким образом, все, что может быть сделано с помощью среды выполнения ASP.NET (за исключением специфических для WebForms вещей, таких как ViewState), также может быть сделано с ASP.NET MVC и с Monorail.
Таким образом, вы всегда можете получить текущий HttpContext ASP.NET, используя статический метод HttpContext.Current.
Из Monorail вы также можете использовать свойство IEngineContext.UnderlyingContext для доступа к ASP.NET HttpContext.
В частности, в Monorail вы можете получить указанный IP-адрес клиента, используя вспомогательное свойство UserHostAddress текущего IRequest.
например, в действии контроллера:
var clientIP = Request.UserHostAddress;
Я считаю, что это:
HttpContext.Request.ServerVariables["REMOTE_ADDR"]