当前位置:  开发笔记 > 编程语言 > 正文

为什么我从LDAP属性获取'System .__ ComObject'?

如何解决《为什么我从LDAP属性获取'System.__ComObject'?》经验,为你挑选了2个好方法。

我将是第一个承认这是切入和过去编程的人.我以前从未看过AD,真的不明白.我想这是我的下一个研究......

无论如何,这是一些测试代码,它应该显示有效期 - 无论是可读的还是刻度的 - 都无关紧要.(这是一个Web表单,它在dev webserver上运行.)

我得到的是:"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 );

barneytron.. 6

Dave Cluderay推荐的文章是个好主意.需要注意的一件重要事情是,如果到期时间设置为永不过期,那么您获得的日期可能没有意义.

根据MS文档,ADSI调用中的IADsLargeInteger表示自1601年1月1日(UTC)以来100纳秒间隔的数量,"0或0x7FFFFFFFFFFFFFFF(9223372036854775807)的值表示该帐户永不过期".



1> barneytron..:

Dave Cluderay推荐的文章是个好主意.需要注意的一件重要事情是,如果到期时间设置为永不过期,那么您获得的日期可能没有意义.

根据MS文档,ADSI调用中的IADsLargeInteger表示自1601年1月1日(UTC)以来100纳秒间隔的数量,"0或0x7FFFFFFFFFFFFFFF(9223372036854775807)的值表示该帐户永不过期".



2> Dave Cludera..:

这是因为属性值使用ADSI IADsLargeInteger COM接口表示,需要转换为.NET日期.虽然我没有尝试过,但有一个示例显示如何:http: //www.simple-talk.com/dotnet/.net-framework/building-active-directory-wrappers-in-.net/

推荐阅读
云聪京初瑞子_617
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有