使用OAuth记录C#Web API请求/响应
我很难弄清楚这一点,但当我在我的Web API(创建于VS2013)中使用自定义消息处理程序时,没有一个/token请求通过我的处理程序得到处理 我想做的是通过实现一些日志记录来帮助我们的支持团队将请求/响应值保存几天。这将允许他们尽可能原始地查看请求和响应 除了“/token”请求之外,它在工作。我们需要处理“/token”和“/authenticate”的请求和响应,因为我们大部分的支持呼叫都是用户名和密码问题 我还需要在消息处理程序中执行此操作,以便将代码隔离到消息处理程序 这是我在一个独立项目中测试的一个示例处理程序。它只用于调试/测试此问题。我还实现了一个DelegatingHandler,结果也是一样的使用OAuth记录C#Web API请求/响应,c#,asp.net,oauth,asp.net-web-api2,C#,Asp.net,Oauth,Asp.net Web Api2,我很难弄清楚这一点,但当我在我的Web API(创建于VS2013)中使用自定义消息处理程序时,没有一个/token请求通过我的处理程序得到处理 我想做的是通过实现一些日志记录来帮助我们的支持团队将请求/响应值保存几天。这将允许他们尽可能原始地查看请求和响应 除了“/token”请求之外,它在工作。我们需要处理“/token”和“/authenticate”的请求和响应,因为我们大部分的支持呼叫都是用户名和密码问题 我还需要在消息处理程序中执行此操作,以便将代码隔离到消息处理程序 这是我在一个独
public class MyMessageProcessingHandler : MessageProcessingHandler {
protected override HttpRequestMessage ProcessRequest(HttpRequestMessage request, System.Threading.CancellationToken cancellationToken) {
Trace.WriteLine(string.Format("{0} {1}", request.Method, request.RequestUri));
return request;
}
protected override HttpResponseMessage ProcessResponse(HttpResponseMessage response, System.Threading.CancellationToken cancellationToken) {
Trace.WriteLine("response!");
return response;
}
}
在WebApiConfig.Register方法中,我将消息处理程序添加到配置的消息处理程序集合中。
(我还尝试了Global.asax.cs是应用程序启动方法)
顺序似乎并不重要——我已经尝试将其作为第一行代码,或最后一行代码。我已经尝试在被动消息处理程序被添加之后插入
config.Filters.Add(new HostAuthenticationFilter(OAuthDefaults.AuthenticationType));
GlobalConfiguration.Configuration.MessageHandlers.Insert(0, new MyMessageProcessingHandler());
每当我发出api/Values请求或任何api/Controller请求时,定制消息处理程序都会很好地处理该请求。但是,当我发布(或获取)到/token(正确地说是)时,自定义消息处理程序不会处理该请求
我想知道如何使用消息处理程序来处理/token&/authenticate请求。我感谢你的帮助
谢谢
-里克我带了一个定制的IHttpModule。它通过让我直接访问请求并允许我检查它们,以我想要的方式完成了我想要的事情;即使是身份验证请求 感谢大家关注我的问题
config.Filters.Add(new HostAuthenticationFilter(OAuthDefaults.AuthenticationType));
GlobalConfiguration.Configuration.MessageHandlers.Insert(0, new MyMessageProcessingHandler());