使用Message Handler和HttpClient进行Web API身份验证

时间:2013-12-30 09:04:55

标签: c# authentication asp.net-web-api

我是使用Web API进行Web开发的新手,我遇到了一些使用自定义消息处理程序处理身份验证的问题 - 特别是使用HttpClient从C#WPF应用程序调用Web API方法。

我使用自定义DelegatingHandler实现了身份验证,如在给定here的TokenInspector类示例中(减去HTTPS内容)。从我理解的帖子中,这会将请求管道中的身份验证移到比this热门帖子中的动作过滤器更高的位置。

我可以使用类似下面的ajax调用成功调用我的安全方法(其中_key是安全令牌):

$.ajax({
    url: _api + '/Item',
    beforeSend: function(request) {
                    request.setRequestHeader("X-Token", _key);
                },
    type: 'GET',
    dataType: 'json',
    success: fnSuccessResult,
    error: function (xhr, status, error) {
               alert(xhr.status + ' ' + status + ' ' + error);
           }
});

我正在使用C#为我的Web API编写测试工具 - 如何使用HttpClient在C#中处理这种类型的身份验证?

1 个答案:

答案 0 :(得分:0)

试试这个:

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);