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
であり、 'lastLogon =(long)sr.Properties [" lastLogon "] [0];'または 'ds.PropertiesToLoad.AddRange(new string [] samAccountName"、 "lastLogon"})です。 '? – Julian