gpt4 book ai didi

asp.net-web-api - 在 Web API 身份验证过滤器中捕获请求 IP 地址

转载 作者:行者123 更新时间:2023-12-04 00:06:33 25 4
gpt4 key购买 nike

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

请求 IP 地址是否可从 HttpActionContext 获得?

我似乎找不到它。

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

最佳答案

我最近为此找到了以下扩展方法:

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();

关于asp.net-web-api - 在 Web API 身份验证过滤器中捕获请求 IP 地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30335955/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com