c# - How to convert Active Directory pwdLastSet to Date/Time -


    public static string getproperty(searchresult searchresult, string propertyname)     {         if (searchresult.properties.contains(propertyname))         {             return searchresult.properties[propertyname][0].tostring();         }         else         {             return string.empty;         }     } 

the above method works great active directory properties except related date/time such pwdlastset, maxpwdage, etc.

my question how pwdlastset human readable datetime (like 8/13/2013 or august 13, 2013, etc)

i've tries threw exceptions

public static int64 convertadslargeintegertoint64(object adslargeinteger) {     var highpart = (int32)adslargeinteger.gettype().invokemember("highpart", system.reflection.bindingflags.getproperty, null, adslargeinteger, null);     var lowpart = (int32)adslargeinteger.gettype().invokemember("lowpart", system.reflection.bindingflags.getproperty, null, adslargeinteger, null);     return highpart * ((int64)uint32.maxvalue + 1) + lowpart; } 

i using following code time int64

int64 passwordlastset = convertadslargeintegertoint64(objresult.properties["pwdlastset"][0]); 

then plan on using datetime(int64) constructor create datetime

according the msdn documentation:

this value stored large integer represents number of 100 nanosecond intervals since january 1, 1601 (utc).

this aligns datetime.fromfiletimeutc, as described here.

and i'm not sure why feel need low level manipulation of integer. think cast it.

so do:

long value = (long)objresult.properties["pwdlastset"][0]; datetime pwdlastset = datetime.fromfiletimeutc(value); 

Comments

Popular posts from this blog

How to remove text and logo OR add Overflow on Android ActionBar using AppCompat on API 8? -

html - How to style widget with post count different than without post count -

url rewriting - How to redirect a http POST with urlrewritefilter -