WinInet和"谈判"认证

时间:2014-12-16 20:54:15

标签: authentication wininet spnego

我有一个我目前连接的Web服务,并使用WinInet进行身份验证。它当前实现的方式是设置INTERNET_FLAG_NO_AUTH,并将标题明确设置为HttpSendRequest的第二个参数。明确设置标头的好处是我们不会首先获得401响应,并且在#WWW中使用认证方法列表 - 认证:"报头中。

我们现在已在我们的服务中启用了Negotiate身份验证,我们希望在客户端中实现此功能。在这种情况下,我们使用HttpSendRequest发送请求而不使用Authorization: Basic标头,并使用以下标头返回401响应:

WWW - Authenticate: Negotiate
WWW - Authenticate: Basic

然后我们再次使用相同的请求句柄再次调用HttpSendRequest,一切似乎都有效,客户端通过Windows身份验证在服务器上进行身份验证。

是否有明确告诉WinInet尝试使用Negotiate协议发出请求?

我还不清楚WinInet如何处理第二个请求。我试过打开Fiddler,但只是启用了Fiddler似乎打破了Negotiate协议。

0 个答案:

没有答案