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