我正在尝试从 Active Directory 中解码 logonHours 属性,以便它正确显示在我的 Java 应用程序中。当我查看属性编辑器时,它看起来像这样:
logonHours 03 00 00 00 F0 FF 1F F0 FF 1F F0 FF 1F F0 FF 1F F0 FF 1F 00 FF
这正好是 21 个字节长,这是我所期望的(每天编码为 3 个字节,每天总共 24 位)。这是为了匹配我所拥有的 loginHours 下的显示。但是,我的编码如下(每天的位串)
Sun: 00000000 (00) 00000000 (00) 00000000 (00)
Mon-Fri: 00001111 (0F) 11111111 (FF) 11111000 (F8)
Sat: 00000000 (00) 11111111 (FF) 11000000 (C0)
这让我认为 logonHours 属性和显示之间发生了一些编码。我查看了 Perl 代码和 VBScript - 在 Java 中转换其中任何一个都是直接转换,这与现实不符。
有没有人有 Java、C#.NET 或其他伪代码来正确解码 logonHours 属性?