http - 如何使用 WinHTTP 库进行 kerberos(windows 集成)身份验证

标签 http kerberos winhttp

有一个运行在 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/

相关文章:

python socket 如何使用相同的套接字连接正确重定向 http/s 请求?

Django 测试客户端 client.post() 发送 GET 请求?

http - 通过 HTTP (MPEG-DASH) 进行流式传输有何意义?

hadoop - 具有kerberos安全性的Sqoop在cron中不起作用,抛出GSSException

java - KerberosAuthenticationProvider 与 KerberosServiceAuthenticationProvider

ssh - Kerberized ssh - key 交换很慢

winapi - 进程内和进程外解析 WPAD 有什么区别?

javascript - 在 Angular 函数中调用 AJAX

apache - 客户端问候后 SSL 握手失败服务器 [FIN, ACK]