22

我正在使用 ASP.NET Web Api 来公开一些 GET 方法。

但在我返回数据之前,我需要将一些详细信息记录到数据库中,其中很少有如下所列:

  • 来电者的IP
  • 呼叫者的用户代理
  • 来电者使用的网址

现在在控制器中,当我以前这样做时,我曾经使用以下代码,

var ipAddress = Request.ServerVariables["REMOTE_ADDR"];
var userAgent = Request.UserAgent;

但是在 Web API 中,我无法使用它。

谁能帮我解决这个问题。

4

2 回答 2

21

我想到了,

public static LogModel GetApiLogDetails()
{
    var logModel = new LogModel();
    logModel.TimeStamp   = DateTime.Now;
    logModel.CallerIp    = HttpContext.Current.Request.UserHostAddress;
    logModel.CallerAgent = HttpContext.Current.Request.UserAgent;
    logModel.CalledUrl   = HttpContext.Current.Request.Url.OriginalString;
    return logModel;
}

在一点帮助下

在 ASP.NET Web API &中获取 Web Api 消费者 IP 地址和主机名

获取远程主机的IP地址

于 2013-06-28T12:44:34.087 回答
4

您应该使用HttpRequestMessage包含您需要的所有数据的类。

阅读更多:

于 2013-06-28T12:42:42.207 回答