代码之家  ›  专栏  ›  技术社区  ›  Brenton Alker

如何在Castle MVC(Monorail)中获取用户的IP地址?

  •  4
  • Brenton Alker  · 技术社区  · 15 年前

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

    认为 在asp.net mvc中 Request.ServerVariables["REMOTE_ADDR"] ,但我在城堡里找不到对等物。

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

    2 回复  |  直到 12 年前
        1
  •  6
  •   Ken Egozi    15 年前

    Castle Monorail和ASP.NET MVC在ASP.NET运行时充当优雅的MVC皮肤。

    因此,可以使用asp.net运行时完成的所有事情(除了特定于webforms的东西,如viewstate)也可以使用asp.net mvc和monorail完成。

    因此,您始终可以使用静态HttpContext.current方法获取当前ASP.NET的HttpContext。

    在Monorail中,您还可以使用IEngineContext的.underyingContext属性访问ASP.NET HttpContext。

    具体来说,在monorail中,可以使用当前irequest上的便利属性userhostaddress获取客户机报告的ip。

    例如,在控制器的动作中:

    var clientIP = Request.UserHostAddress;
    
        2
  •  3
  •   PatrickSteele    15 年前

    我相信它:

    HttpContext.Request.ServerVariables["REMOTE_ADDR"]
    
    推荐文章