Servicestack IRequestLogger获取IHttpRequest

时间:2015-08-25 21:05:31

标签: servicestack

我正在ServiceStack中实现请求和响应的日志记录。我想在我的IRequestLogger.Log()方法中掌握IHttpRequest。

IRequestContext没有像IHttpRequest那样的信息,有没有办法可以传递或访问它。我正在尝试记录请求标头,UserAgent,令牌等。

1 个答案:

答案 0 :(得分:1)

IRequestLogger.Log注入了当前的IRequest

您可以强制转换为IHttpRequest以获取HTTP请求,并通过转换IRequest.OriginalRequest来访问基础ASP.NET或HttpListener请求,例如:

void Log(IRequest request, object requestDto, object response, TimeSpan elapsed)
{
    var httpReq = request as IHttpRequest;
    var aspReq = request.OriginalRequest as HttpRequestBase;     
}