by
Roland Schumacher alias GENiALi
16. Januar 2007 -- 85
words -- 1 mal gelesen
Datumswerte werden im AD (Active Directory) in der Regel als 8 Byte (IADsLargeInteger)
gespeichert. Dazu gibt es Hilfsmethoden die daraus ein Datum machen.
Eine solche hatte ich auch gefunden. In den Webcasts zu dem Thema
wurde eine solche gezeigt.
Allerdings funktioniert die nicht ganz immer. z.B.: bei Account-Expires
(Ldap-Display-Name = accountExpires) nicht. Und zwar aus diesem
Grund hier.
[...] hier
...
A value of 0 or 0x7FFFFFFFFFFFFFFF (9223372036854775807) indicates that the account never expires.
...
[...]
Hier mal mein erster Prototyp der Methode. Mal schauen wie sie sich bewährt.
private static DateTime GetDateTime(DirectoryEntry DN, string Attribute)
{
IADsLargeInteger li = (IADsLargeInteger)DN.Properties[Attribute][0];
long date = (long)li.HighPart << 32 | (uint)li.LowPart;
if (date == 9223372036854775807)
{
date = 0;
}
DateTime time = DateTime.FromFileTime(date);
return time;
}