Tag: adsi

全名而不是User.Identity.Name中的域ID

User.Identity.Name属性返回域登录ID。 哪个类/属性公开了实际的用户名? 对于登录提供my_domain \ jdoe的Web应用程序的用户“John Doe” **User.Identity.Name -** Returns : *my_domain\jdoe* **System.Environment.UserName** Returns: *jdoe* 哪个类/属性返回? ……“John Doe”

我何时需要域名和域容器来创建PrincipalContext?

我正在开发一个C#.NET Framework库来访问活动目录。 我要做的一件事是获得所有AD用户,我看到: PrincipalContext principalContext = new PrincipalContext(ContextType.Domain, domainName.Trim(), domainContainer.Trim()); 和 PrincipalContext principalContext = new PrincipalContext(ContextType.Domain); 使用以下代码返回相同的用户: // define a “query-by-example” principal – here, we search for all users UserPrincipal qbeUser = new UserPrincipal(principalContext); // create your principal searcher passing in the QBE principal PrincipalSearcher srch = new PrincipalSearcher(qbeUser); // find all matches foreach (var […]

使用DirectorySearcher.FindAll()时内存泄漏

我有一个漫长的运行过程,需要经常在Active Directory上进行大量查询。 为此,我一直使用System.DirectoryServices命名空间,使用DirectorySearcher和DirectoryEntry类。 我注意到应用程序中存在内存泄漏。 它可以使用以下代码重现: while (true) { using (var de = new DirectoryEntry(“LDAP://hostname”, “user”, “pass”)) { using (var mySearcher = new DirectorySearcher(de)) { mySearcher.Filter = “(objectClass=domain)”; using (SearchResultCollection src = mySearcher.FindAll()) { } } } } 这些类的文档说如果没有调用Dispose(),它们将泄漏内存。 我试过没有处理过,它只是泄漏了更多的内存。 我已经使用框架版本2.0和4.0对此进行了测试。之前是否有人遇到此问题? 有没有解决方法? 更新:我尝试在另一个AppDomain中运行代码,它似乎也没有帮助。

Active Directory用户密码到期日期.NET / OU组策略

我在网站上搜索了相关信息,发现: ASP.NET C#Active Directory – 查看用户密码到期之前的时间 这解释了如何根据域策略获取密码何时到期的值。 我的问题是:如果用户的OU组策略具有不同的MaxPasswordAge值,覆盖域组策略中指定的值,该怎么办? 如何以编程方式获取OU的组策略对象? 编辑:为了使这个问题更加清晰,我正在添加此编辑。 我所追求的是能够告诉用户的密码何时到期。 据我所知,日期值可以由域本地策略或组对象策略控制。 我有一个Linq2DirectoryService Provider,它将Linq转换为Ldap查询。 因此,获取日期到期值的LDAP查询对于此subj将是最佳的。 如果你回答包括.net所支持的包装器的对象包含在这个等式中 – 这将是一个死的答案!