在WPF中通过HttpClient提供Windows凭据

时间:2018-02-28 16:39:51

标签: c# wpf windows-authentication dotnet-httpclient

首先,我要说我不习惯HttpClient API,REST协议和Windows身份验证。我想做一些绝对不可能的事情是可能的。

从这样配置的WPF应用程序(不知道它是否相关):

AppDomain.CurrentDomain.SetPrincipalPolicy(PrincipalPolicy.WindowsPrincipal);

我正在通过HttpClient编写对REST Web服务的调用。我想向WS提供当前登录的用户凭据,以便检查WS端是否可以实际调用它。

我已在互联网上阅读了大量示例,但我必须向HttpClient HttpClientHandler提供这样的配置:

var handler = new HttpClientHandler
{
    UseDefaultCredentials = true
};

_client = new HttpClient(handler, true);

var response = await _client.GetAsync(concreteUrl);

我还尝试了很多与我在互联网上找到的其他属性的组合:

PreAuthenticate = true
Credentials = CredentialCache.DefaultCredentials

但是无论组合尝试配置处理程序,使用fiddler,当我查看请求时,标题是绝对空的:

GET http://my.domain/url/ HTTP/1.1
Host: my.domain
Connection: Keep-Alive

在Auth选项卡中:

No Proxy-Authorization Header is present.
No Authorization Header is present.

顺便说一句,WS正在用PHP开发,客户端在.NET 4.5.2下运行。

这甚至可能吗?否则,我如何通过HttpClient请求对WS上的用户进行身份验证?

0 个答案:

没有答案