Как вы получаете 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"]
Другие вопросы по тегам