如何在WebMethod中获取呼叫者的IP地址?

Guy*_*Guy 51 c# asp.net web-services

如何在WebMethod中获取呼叫者的IP地址?

[WebMethod]
public void Foo()
{
    // HttpRequest... ? - Not giving me any options through intellisense...
}
Run Code Online (Sandbox Code Playgroud)

使用C#和ASP.NET

Dar*_*opp 84

HttpContext.Current.Request.UserHostAddress就是你想要的.

  • 如果你得到System.InvalidOperationException"HttpContext不可用.这个类只能在ASP.NET请求的上下文中使用." 如果不向web.config添加一些内容,则Context中的HttpContext将不可用.<serviceHostingEnvironment aspNetCompatibilityEnabled ="true"/>.<AspNetCompatibilityRequirements(RequirementsMode:= AspNetCompatibilityRequirementsMode.Allowed)> (3认同)

dav*_*pcj 9

只是一个警告.IP地址不能用于唯一标识客户端.NAT防火墙和企业代理无处不在,并且将许多用户隐藏在单个IP之后.


Kev*_*Kev 6

尝试:

Context.Request.UserHostAddress
Run Code Online (Sandbox Code Playgroud)