我将是第一个承认这是过时的编程。我以前从来没有看过AD,真的不明白。我想那是我的下一个研究......
无论如何,这是一些测试代码,它应该显示到期日期——要么是可读的,要么是刻度线——这无关紧要。 (这是一个 Web 表单,在开发 Web 服务器上运行。)
我得到的是:“System.__ComObject”
DirectorySearcher searcher = new DirectorySearcher();
searcher.Filter = String.Format( "(SAMAccountName={0})", "TestA33" );
searcher.PropertiesToLoad.Add( "cn" );
SearchResult result = searcher.FindOne();
DirectoryEntry uEntry = result.GetDirectoryEntry();
String expiry = uEntry.Properties["accountExpires"].Value.ToString();
Response.Write( expiry );
最佳答案
Dave Cluderay 推荐的文章是个好主意。需要注意的一件重要事情是,如果将到期时间设置为从不,则您获得的日期可能没有意义。
根据 MS 文档,来自 ADSI 调用的 IADsLargeInteger 表示自 1601 年 1 月 1 日(UTC)以来的 100 纳秒间隔数,并且“值 0 或 0x7FFFFFFFFFFFFFF (9223372036854775807) 表示帐户永不过期”。
关于active-directory - 为什么我从我的 LDAP 属性中得到 'System.__ComObject'?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/441110/