【发布时间】:2010-04-26 23:34:39
【问题描述】:
在 CastleMVC 应用程序的控制器操作中,如何获取用户的 IP 地址?
我认为在 asp.net mvc 中应该是 Request.ServerVariables["REMOTE_ADDR"],但我在 Castle 中找不到等价物。
(我知道潜在的代理问题等,请求中报告的地址很好)
【问题讨论】:
标签: c# asp.net asp.net-mvc castle-monorail
在 CastleMVC 应用程序的控制器操作中,如何获取用户的 IP 地址?
我认为在 asp.net mvc 中应该是 Request.ServerVariables["REMOTE_ADDR"],但我在 Castle 中找不到等价物。
(我知道潜在的代理问题等,请求中报告的地址很好)
【问题讨论】:
标签: c# asp.net asp.net-mvc castle-monorail
Castle Monorail 以及 ASP.NET MVC 可作为 ASP.NET 运行时的优雅 MVC 皮肤。
因此,可以使用 ASP.NET 运行时完成的所有事情(除了 WebForms 特定的东西,如 ViewState)也可以使用 ASP.NET MVC 和 Monorail 完成。
因此,您始终可以使用静态 HttpContext.Current 方法获取当前 ASP.NET 的 HttpContext。
在 Monorail 中,您还可以使用 IEngineContext 的 .UnderlyingContext 属性来访问 ASP.NET HttpContext。
具体来说,在 Monorail 中,您可以使用当前 IRequest 上的便捷属性 UserHostAddress 获取客户端报告的 IP。
例如在控制器的操作中:
var clientIP = Request.UserHostAddress;
【讨论】:
我相信它:
HttpContext.Request.ServerVariables["REMOTE_ADDR"]
【讨论】: