【问题标题】:Active Directory Strange Attribute ValueActive Directory 奇怪的属性值
【发布时间】:2014-03-09 23:42:14
【问题描述】:

我正在使用此代码获取有关 Active Directory 中用户的信息:

    SearchResultCollection searchResults = null;
    string activeDirFilter = getActiveDirFilter();
    DirectoryEntry dirEntry = new DirectoryEntry();

    DirectorySearcher searcher = new DirectorySearcher(dirEntry)
    {
        PageSize = 100,
        Filter = activeDirFilter,
        SearchScope = SearchScope.Subtree
    };

这段代码运行良好,我得到了这些属性:

LASTLOGON
130388757393977187

PWDLASTSET
130378422326246669

LASTLOGONTIMESTAMP
130380275331980403

但是,我无法理解该值,有人知道如何将这些数字解码为时间戳吗?

编辑: 这些值不能是自纪元以来的秒数,因为 130388757393977187 秒 = 4 131 858.64 千年。

也不可能是滴答声,因为 130388757393977187 = 413 年。

【问题讨论】:

    标签: c# active-directory


    【解决方案1】:

    您当前拥有Unix Timestamp,您应该将其转换为 DateTime 对象并打印出来。

    public static DateTime UnixTimeStampToDateTime(double unixTimeStamp)
    {
        // Unix timestamp is seconds past epoch
        System.DateTime dtDateTime = new DateTime(1970,1,1,0,0,0,0,System.DateTimeKind.Utc);
        dtDateTime = dtDateTime.AddSeconds(unixTimeStamp).ToLocalTime();
        return dtDateTime;
    }
    

    【讨论】:

    • 我认为如果数字较小,这将起作用。使用 130388757393977187 时出现 OutOfRange 异常。
    • 但是 doublel.MaxValue = 1.7976931348623157E+308。那是否 = 1.7976931348623157x10^308 ?如果是这样,存储 130388757393977187 的空间已经绰绰有余,为什么会出现 OutOfRange 错误?
    • @Backwards_Dave,也许这篇文章会有所帮助,codeproject.com/Articles/565593/…
    • 我得到 mscorlib.dll 中出现“System.ArgumentOutOfRangeException”类型的未处理异常附加信息:要添加的值超出范围。在 dtDateTime = dtDateTime.AddSeconds(unixTimeStamp).ToLocalTime();
    • 问题是 130 388 830 889 255 041 秒 = 4 131 860.97 千年,当用作 UnixTimeStampToDateTime() 的输入时,返回的输出远大于 DateTime.MaxValue。为什么我从 AD 得到这么多的数字?可能是微秒还是什么?
    【解决方案2】:

    我解决了:

    你需要使用

    long x = 130388757393977187;
    DateTime dateTime = DateTime.FromFileTimeUtc(x);
    

    【讨论】:

    猜你喜欢
    • 2022-11-30
    • 1970-01-01
    • 1970-01-01
    • 2023-04-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-26
    • 1970-01-01
    相关资源
    最近更新 更多