为什么cURL不能在IIS7上使用Windows身份验证?

woz*_*woz 29 curl windows-authentication

我正在尝试访问Windows身份验证背后的服务.我以为我可以通过HTTP基本身份验证凭据传递的方式传递凭据,但它不起作用.当我执行以下操作时,出现401错误,我绝对确定密码是否正确.

curl --user username:password http://example.com
Run Code Online (Sandbox Code Playgroud)

为什么这不起作用?

woz*_*woz 44

如果您使用的是Windows身份验证,则需要使用NTLM:

curl --ntlm --user username:password http://example.com
Run Code Online (Sandbox Code Playgroud)

  • 如果你没有输入密码,命令行会提示你. (4认同)
  • 请参阅我的答案,了解如何使用当前登录用户的请求 (4认同)

Sea*_*nch 26

您还可以将用户名和密码字段留空(-u :),curl将使用您环境中的当前凭据:

curl --ntlm -u : http://example.com
Run Code Online (Sandbox Code Playgroud)

根据文档(下-u, --user)

如果您使用支持Windows SSPI的curl二进制文件并执行Kerberos V5,Negotiate,NTLM或Digest身份验证,那么您可以告诉curl通过使用此选项指定单个冒号来从您的环境中选择用户名和密码:" - u:" .

启用Kerberos的二进制文件