0
lastlogontimestamp를 datetime으로 변환하려고 시도하지만 큰 값을 알았 으면 예외 메시지가 나타납니다. 인덱스가 범위를 벗어났습니다. 음수가 아니어야하며 콜렉션의 크기보다 작아야합니다.lastlogontimestamp를 DateTime으로 변환합니다.
아래에서 더 좋은 방법이 있습니까?
var de = new DirectoryEntry("LDAP://GLOBAL.ABC.COM");
var ds = new DirectorySearcher(de);
ds.Filter = string.Format("(&(objectCategory=user)(objectClass=user)({0}={1}))",
"samAccountName", username);
ds.PropertiesToLoad.AddRange(new string[] { "samAccountName", "lastLogon" });
SearchResult sr = ds.FindOne();
long lastLogon = (long)sr.Properties["lastLogon"][0];
// lastLogon is 131111471723190497
var dtLastLogon = DateTime.FromFileTime(lastLogon);
return dtLastLogon.ToString();
"인덱스가 범위를 벗어났습니다"는 것은 어느 것입니까? "큰 값"의 예를 제공하십시오 – Julian
lastLogon 변수를받는 줄입니다. 값은 131111471723190497 – Blade1
입니다. long longLogon = (long) sr.Properties [ "lastLogon"] [0]; 또는 ds.PropertiesToLoad.AddRange (새 문자열 [] samAccountName ","lastLogon "}); '? – Julian