【问题标题】:How do you get the User's IP Address in Castle MVC (Monorail)?您如何在 Castle MVC (Monorail) 中获取用户的 IP 地址?
【发布时间】:2010-04-26 23:34:39
【问题描述】:

在 CastleMVC 应用程序的控制器操作中,如何获取用户的 IP 地址?

认为在 asp.net mvc 中应该是 Request.ServerVariables["REMOTE_ADDR"],但我在 Castle 中找不到等价物。

(我知道潜在的代理问题等,请求中报告的地址很好)

【问题讨论】:

    标签: c# asp.net asp.net-mvc castle-monorail


    【解决方案1】:

    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;
    

    【讨论】:

      【解决方案2】:

      我相信它:

      HttpContext.Request.ServerVariables["REMOTE_ADDR"]
      

      【讨论】:

        猜你喜欢
        • 2014-06-13
        • 2011-02-04
        • 1970-01-01
        • 2011-06-02
        • 2019-02-14
        • 1970-01-01
        • 2010-11-06
        • 2023-03-10
        相关资源
        最近更新 更多