Authentication WinInet和“协商”身份验证

Authentication WinInet和“协商”身份验证,authentication,wininet,spnego,Authentication,Wininet,Spnego,我有一个web服务,我目前连接到该服务,并使用WinInet的基本身份验证进行身份验证。它当前的实现方式是设置INTERNET_FLAG_NO_AUTH,并将头显式地设置为HttpSendRequest的第二个参数。显式设置头的好处是,我们不会首先在WWW-Authenticate:header中获得401响应和身份验证方法列表 我们现在在服务中启用了协商身份验证,我们希望在客户端实现这一点。在本例中,我们使用HttpSendRequest在未经授权的情况下发送一个请求:Basic标头,并返回一

我有一个web服务,我目前连接到该服务,并使用WinInet的基本身份验证进行身份验证。它当前的实现方式是设置INTERNET_FLAG_NO_AUTH,并将头显式地设置为HttpSendRequest的第二个参数。显式设置头的好处是,我们不会首先在WWW-Authenticate:header中获得401响应和身份验证方法列表

我们现在在服务中启用了协商身份验证,我们希望在客户端实现这一点。在本例中,我们使用HttpSendRequest在未经授权的情况下发送一个请求:Basic标头,并返回一个带有以下标头的401响应:

WWW - Authenticate: Negotiate
WWW - Authenticate: Basic
然后,我们只需使用相同的请求句柄再次调用HttpSendRequest,一切看起来都正常,客户端通过windows auth在服务器上进行身份验证

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

我也不清楚WinInet如何处理第二个请求。我试过打开Fiddler,但启用Fiddler似乎会破坏协商协议