0

我正在使用 AcceptSecurityContext 方法(https://msdn.microsoft.com/en-us/library/windows/desktop/aa374708(v=vs.85).aspx)建立安全连接,但这似乎触发(二)审核Windows事件日志中的失败事件。这些事件的 ID 为 4625,这似乎表明它们代表登录尝试失败,但 AcceptSecurityContext 调用返回状态 SEC_E_OK。怎么会这样?如果它是一个真正的失败,我希望该方法将返回 STATUS_LOGON_FAILURE。并且登录似乎有效,因为我能够继续进行通信。

有谁知道如何避免这些消息?帮助将不胜感激。

该事件似乎仅记录在 Windows 服务器上(我尝试过 2016、2012 和 2008)。我在 Windows 10 上看不到该事件。

4

1 回答 1

0

当 Windows 尝试针对 Windows AD 服务器对安全上下文握手中使用的证书进行身份验证时,会产生错误。关于为什么这是默认行为的理论的更多信息会很有趣,但在我的情况下,证书不代表任何 AD 实体。它仅用于单台机器上的服务之间,以允许这些服务之间的安全通信。因此,我可以在调用AcquireCredentialsHandle期间通过设置SCHANNEL_CRED 结构的 dwFlags 部分来简单地关闭 Windows 身份验证机制,如下所示:

credStruct.dwFlags = SCH_CRED_NO_SYSTEM_MAPPER;
于 2018-08-06T14:12:38.880 回答