C# 使用消息处理程序和HttpClient的Web API身份验证
我是使用web API进行web开发的新手,在使用自定义消息处理程序进行身份验证时遇到了一些问题——特别是使用HttpClient从C#WPF应用程序调用web API方法 我已经使用定制的DelegatingHandler实现了身份验证,如所给出的TokenInspector类示例(不包括HTTPS内容)。从这篇文章中我了解到,与流行文章中的操作过滤器相比,这将身份验证提升到了请求管道的更高层次 我可以使用ajax调用成功地调用我的安全方法,如下所示(其中_key是安全令牌): 我正在为我的Web API编写C#测试工具-如何使用HttpClient在C#中处理这种类型的身份验证?尝试以下方法:C# 使用消息处理程序和HttpClient的Web API身份验证,c#,authentication,asp.net-web-api,C#,Authentication,Asp.net Web Api,我是使用web API进行web开发的新手,在使用自定义消息处理程序进行身份验证时遇到了一些问题——特别是使用HttpClient从C#WPF应用程序调用web API方法 我已经使用定制的DelegatingHandler实现了身份验证,如所给出的TokenInspector类示例(不包括HTTPS内容)。从这篇文章中我了解到,与流行文章中的操作过滤器相比,这将身份验证提升到了请求管道的更高层次 我可以使用ajax调用成功地调用我的安全方法,如下所示(其中_key是安全令牌): 我正在为我的W
var client = new HttpClient();
var request = new HttpRequestMessage();
request.Headers.Add("X-Token", "token");
request.Headers.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
request.Method = HttpMethod.Get;
client.SendAsync(request);
我得到了一个“内部服务器错误”响应,与我迄今为止的所有其他尝试相同。有没有办法让服务器发送有关错误的更多详细信息?我在自定义DelegatingHandler类的SendAsync方法中放置了一个断点,但没有命中它。您的处理程序看起来如何?您是如何注册的?您的代码按预期工作。必须存在与MessageHandler实现无关的错误。我已将另一个方法添加到我的控制器以进行测试-它与您的解决方案一起工作。然后我改变了原来的控制器方法名称,现在它可以工作了,奇怪。。。谢谢你的帮助。我已经添加了一个类似的问题,我用这种方法发布数据。
var client = new HttpClient();
var request = new HttpRequestMessage();
request.Headers.Add("X-Token", "token");
request.Headers.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
request.Method = HttpMethod.Get;
client.SendAsync(request);