相关疑难解决方法(0)

如何获取特定用户的所有AD组?

我已经查过这篇文章了.但它没有回答我的问题.我想获取特定用户所属的所有活动目录组.

我写了以下代码.但我无法继续进行,因为我不知道如何提供过滤器以及如何访问属性.

class Program
{
    static void Main(string[] args)
    {
        DirectoryEntry de = new DirectoryEntry("LDAP://mydomain.com");
        DirectorySearcher searcher = new DirectorySearcher(de);
        searcher.Filter = "(&(ObjectClass=group))";
        searcher.PropertiesToLoad.Add("distinguishedName");
        searcher.PropertiesToLoad.Add("sAMAccountName");
        searcher.PropertiesToLoad.Add("name");
        searcher.PropertiesToLoad.Add("objectSid");
        SearchResultCollection results = searcher.FindAll();
        int i = 1;
        foreach (SearchResult res in results)
        {
            Console.WriteLine("Result" + Convert.ToString(i++));
            DisplayProperties("distinguishedName", res);
            DisplayProperties("sAMAccouontName", res);
            DisplayProperties("name", res);
            DisplayProperties("objectSid", res);
            Console.WriteLine();
        }

        Console.ReadKey();
    }

    private static void DisplayProperties(string property, SearchResult res)
    {
        Console.WriteLine("\t" + property);
        ResultPropertyValueCollection col = res.Properties[property];
        foreach (object o in col)
        {
            Console.WriteLine("\t\t" …
Run Code Online (Sandbox Code Playgroud)

.net c# directoryservices ldap active-directory

35
推荐指数
5
解决办法
9万
查看次数

DirectorySearcher FindOne()在初始执行时延迟

我看到执行DirectorySearcher FindOne()和我看到的第一个网络数据包之间的初始延迟时间为2-5秒.初始执​​行后,后续执行立即完成约45秒.在快速执行的这段时间之后,下一次执行将被延迟,并且所有后续执行将立即完成.似乎有某种缓存正在进行,但我无法找到任何确认或描述导致初始延迟的资源.

我们在客户端Windows 2008服务器上注意到了这一点,然后在我们自己的Windows 2008和Windows 7盒子上重现.

这是我简单的.NET 4.0 C#应用程序的样子.延迟发生在"已启动"和"已完成"消息之间.

知道为什么在最初的FindOne()执行时会发生这种延迟吗?任何帮助深表感谢!

using System;
using System.Collections.Generic;
using System.Text;

using System.DirectoryServices;

namespace LdapTest
{
class Program
{
    static void Main(string[] args)
    {
        string[] fetchAttributes;
        fetchAttributes = new string[] { "{string[0]}" };

        using (DirectoryEntry searchRoot = new DirectoryEntry("LDAP://localserver/ou=lab,dc=ourdomain,dc=com", "cn=binduser,ou=Services,dc=ourdomain,dc=com", "Password", AuthenticationTypes.ReadonlyServer))
        {
            using (DirectorySearcher searcher = new DirectorySearcher(searchRoot, "(sAMAccountName=UserName)", fetchAttributes, SearchScope.Subtree))
            {
                Console.WriteLine("Started");
                SearchResult result = searcher.FindOne();
                Console.WriteLine("Finished");
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

c# directoryservices ldap

6
推荐指数
1
解决办法
2626
查看次数

标签 统计

c# ×2

directoryservices ×2

ldap ×2

.net ×1

active-directory ×1