我正在设置 ac# 代理,它使用运行代理的用户凭据对所有 http 协商请求进行身份验证。可悲的是,使用钛网络代理我无法通过 NTML / NTMLV2 进行身份验证。
关于 github 存储库,此功能应该开箱即用(设置 EnableWinAuth = true 时)。
调试代码并通过wireshark检查通信后,我认为流量看起来还不错。代理正在使用 secur32.dll 获取 type1 和 type2 消息令牌。因为我能够在没有代理的情况下对网站进行身份验证(浏览器也使用 secur32.dll),所以我确信指定的 ntml 协议是有效的。
- 代理向托管受保护站点的 Web 服务器发送 type1 消息。(检查 type1 消息时,域/工作站名称是正确的)
- Web 服务器将 type2 消息发送到代理
- 代理能够从 type2 消息生成 type3 消息并将其发送到服务器(type3 消息包含正确的用户名)
- Web 服务器返回 401 未授权
在启用 iis 功能来跟踪失败的请求后,我发现 Web 服务器拒绝了带有 ErrorCode 的令牌 =“提供给函数的令牌无效 (0x80090308)”
我还尝试对本地 iis、远程 iis 上的网站进行身份验证,并在不同的工作站上运行代理。
将本地网络安全策略更改为不同的 ntml 协议也不起作用。
您知道如何进一步调查此案吗?