有一个运行在 linux box 上的服务器,它理解 kerberos,它也处理 SPNEGO 并且只理解 kerberos 但它不理解 NTLM
firefox 和 IE 使用 kerberos token 成功登录并访问网页,无需再次提示输入密码。
现在,我正在尝试使用 WinHTTP 库编写一个应用程序。 我按照这里的例子 http://msdn.microsoft.com/en-Us/library/aa383144(v=vs.85).aspx
在 WinHttpSetCredentials 调用中,我不想设置用户名密码,而是想告诉此调用使用现有凭据。我该怎么做?
如果我提到用户名和密码为空白,它不起作用,它会回退到 NTLM 并失败。
那么有人可以告诉我如何使用 WinHTTPSetCredentials 吗?
最佳答案
事实上,您需要设置 HTTP_OPTION_AUTOLOGON_POLICY 以允许自动登录工作(请参阅 WinHttpSetOption)。有了这个,WinHTTP 库将处理 401 拒绝并伴随 WWW-Authenticate:自动协商和后续基于 Kerberos 的重试。
关于http - 如何使用 WinHTTP 库进行 kerberos(windows 集成)身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4459033/