Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何获取特定域的用户列表?_C#_Windows - Fatal编程技术网

C# 如何获取特定域的用户列表?

C# 如何获取特定域的用户列表?,c#,windows,C#,Windows,有没有办法通过域名获取网络上的用户数? 例如,如果有50个用户使用windows连接到网络。我可以得到所有50个用户(用户名)的列表吗?你可以像这样得到所有用户的列表: static List<string> GetUsersInForest() { var winIdentity = System.Web.HttpContext.Current.User.Identity as System.Security.Principa

有没有办法通过域名获取网络上的用户数?
例如,如果有50个用户使用windows连接到网络。我可以得到所有50个用户(用户名)的列表吗?

你可以像这样得到所有用户的列表:

        static List<string> GetUsersInForest()
        {
            var winIdentity = System.Web.HttpContext.Current.User.Identity as System.Security.Principal.WindowsIdentity;
            if (winIdentity == null) throw new InvalidOperationException();

            using (var ictx = winIdentity.Impersonate())
            {
                List<string> users = new List<string>();
                using (var f = System.DirectoryServices.ActiveDirectory.Forest.GetCurrentForest())
                {
                    foreach (Domain d in f.Domains)
                    {
                        using (d)
                        {
                            foreach (string user in GetUsersInDomain(d.Name))
                            {
                                int idx = users.BinarySearch(user);
                                if (idx < 0) users.Insert(~idx, user);
                            }
                        }
                    }
                }

                return users;
            }
        }
静态列表GetUsersInForest()
{
var winIdentity=System.Web.HttpContext.Current.User.Identity as System.Security.Principal.WindowsIdentity;
如果(winIdentity==null)抛出新的InvalidOperationException();
使用(var ictx=winIdentity.Impersonate())
{
列表用户=新列表();
使用(var f=System.DirectoryServices.ActiveDirectory.Forest.GetCurrentForest())
{
foreach(f.Domains中的域d)
{
使用(d)
{
foreach(GetUsersInDomain中的字符串用户(d.Name))
{
int idx=users.BinarySearch(user);
if(idx<0)users.Insert(~idx,user);
}
}
}
}
返回用户;
}
}

然后根据需要筛选用户

我需要包括什么吗。。?它的名称空间中不存在system.Directory服务。我正在使用DotNet FrameWork 4.0是的,您需要添加引用:C:\Program Files(x86)\Reference Assembly\Microsoft\FrameWork\.NETFramework\v4.0\System.DirectoryServices.dll,C:\Program Files(x86)\Reference Assembly\Microsoft\FrameWork\.NETFramework\v4.0\System.DirectoryServices.AccountManagement.dll