You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在VBA的MSXML2.ServerXMLHTTP60中实现Kerberos认证?

解决MSXML2.ServerXMLHTTP60 Kerberos认证401未授权问题
  • 核心修改:在Open方法调用后、Send方法调用前添加自动登录策略配置
    ServerXMLHTTP60支持通过setOption设置自动登录策略,对应参数SXH_OPTION_AUTOLOGON_POLICY(常量值为4),将其设为0(即SXH_AUTOLOGON_POLICY_AUTO),会自动使用当前用户的凭据进行NTLM或Kerberos认证。

修改后的代码:

Dim http As New MSXML2.ServerXMLHTTP60
Call http.Open("POST", url, False)
' 设置自动登录策略,启用Kerberos/NTLM自动认证
http.setOption 4, 0
Call http.send(body)
  • 额外注意事项:
    1. 确保目标URL被加入IE的本地Intranet区域,因为ServerXMLHTTP会继承IE的安全策略,只有信任区域内的站点才允许自动使用当前凭据。
    2. 若仍有问题,可尝试手动添加Negotiate请求头(自动策略通常会自动处理,但极端场景下可能需要):
      http.setRequestHeader "Authorization", "Negotiate"
      
    3. 确认当前用户拥有目标Web应用的Kerberos访问权限,且客户端与服务器的Kerberos配置(如SPN)正确(你已确认Chrome/Edge可正常访问,此步可跳过)。

内容的提问来源于stack exchange,提问作者ScottR

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.29 02:37:07