传递给 LogonUser() 的密码不正确,但 Active Directory 帐户未按预期锁定

kai*_*64b 5 c++ winapi active-directory

我有活动目录“登录重试次数”= 3。我们使用错误的密码调用了 LogonUser函数 5 次。之后我LogonUser用正确的密码打电话,它可以工作,用户可以登录。

为什么账户没有被锁定?

Ste*_*eve 2

这取决于你如何调用LogonUser。如果您不指定域名,则通过参数或以UPN格式lpszDomain指定,您将尝试登录本地计算机。 lpszUsername

Windows 客户端会在 Active Directory 服务器不可用的情况下存储域登录的缓存凭据。在这种情况下,缓存的凭据将允许用户登录到本地计算机。

当使用域凭据对未连接到域控制器的计算机进行身份验证时,将使用缓存凭据。每次域用户登录时,操作系统都会生成缓存的凭据并将其存储在操作系统的安全配置单元中。

根据 Microsoft 的帐户锁定策略技术概述

帐户锁定策略适用于域帐户。帐户锁定是客户端计算机和域控制器之间的交互,并实现以下过程:

在没有看到您的代码的情况下,我怀疑登录尝试是针对本地计算机而不是域进行的。这些不计入锁定政策。这允许用户毫无问题地登录到域。