3

试图从 AD 中读取这个,男孩,文档是一团糟。将其设置为 15 分钟后,我使用 Java 读取它:

Attributes attrs = ldapContext.getAttributes("DC=BPLAB01,DC=local"); 
System.out.println("Lockout policy for " + attrs.get("distinguishedName").get());
Long lockoutDuration = Long.parseLong(attrs.get("lockoutDuration").get().toString());
System.out.println("Duration: " + lockoutDuration);

持续时间:-9000000000

将其设置为 40 分钟会产生

持续时间:-24000000000

所以我的简单问题是,这里发生了什么,为什么会有这么大的负数?

4

1 回答 1

5

巨大的数字是一个大整数,表示从超过 Lockout-Threshold 开始的100 纳秒间隔数的负数,必须经过该时间才能解锁帐户。

更清楚地说,你所做的就是在这些巨大数字的末尾添加两个 0 以获得纳秒数:24000000000 变为 2400000000000。

我们将其转换为分钟:2400000000000 = 40 分钟。

因此,让我们看看您之前的值 9000000000;一旦我们将它乘以 100,它就会变成 900000000000(毕竟它们是 100 纳秒的间隔!),现在我们将它转​​换为分钟(很容易通过谷歌完成),我们可以看到你之前的值是 0.15 分钟。

该值很可能以负数形式存储,因此可用于查找与设置 Lockout-Threshold 时间的差异。

于 2013-08-26T14:11:25.760 回答