我正在尝试在基于 http.sys 的服务器中实现单点登录(使用 IOCP),并且我遇到了 AcceptSecurityContext 的奇怪问题,它会随机失败并显示 SEC_E_LOGON_DENIED。
从同一台客户端机器连接到同一台服务器机器时(大约 50% 的时间),即使只有一个客户端只有一个 http 连接,我也会随机出现故障。两台机器都在同一个域中,它们都不是域控制器。
失败的调用是挑战-响应序列中的第二个(也是最后一个)调用,第一个总是成功的。
当我在 AcceptSecurityContext 调用之前在 IDE 中有一个断点时(没有其他任何更改),身份验证总是成功(据我测试)。
怀疑时间问题,我在通话前放置了一个 Sleep() ,但这并没有提高成功率。
此外,当从运行 http 服务器的同一台计算机连接时,身份验证始终成功。
无论客户端浏览器(IE 和 Chrome)如何,行为都是相同的。
有任何想法吗?