【问题标题】:Capture request IP Address in Web API Authentication Filter在 Web API 身份验证过滤器中捕获请求 IP 地址
【发布时间】:2015-05-19 20:54:15
【问题描述】:

我想获取调用我的 Web API 服务的客户端的 IP 地址。 我正在尝试在我创建的自定义身份验证过滤器中捕获该 IP 地址。

HttpActionContext 是否提供请求 IP 地址?

我好像找不到。

身份验证过滤器捕获发出请求的客户端 IP 地址的位置是否错误?

【问题讨论】:

    标签: asp.net-web-api


    【解决方案1】:

    我最近发现了以下扩展方法:

    public static string GetClientIpAddress(this HttpRequestMessage request)
    {
        if (request.Properties.ContainsKey("MS_HttpContext"))
        {
            return IPAddress.Parse(((HttpContextBase)request.Properties["MS_HttpContext"]).Request.UserHostAddress).ToString();
        }
        if (request.Properties.ContainsKey("MS_OwinContext"))
        {
            return IPAddress.Parse(((OwinContext)request.Properties["MS_OwinContext"]).Request.RemoteIpAddress).ToString();
        }
        return null;
    }
    

    您现在可以调用:

    HttpActionContext.Request.GetClientIpAddress();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-12-11
      • 1970-01-01
      • 1970-01-01
      • 2014-06-21
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多