首先,我要说我不习惯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上的用户进行身份验证?