有什么方法可以通过域名获取网络上的用户数量? 例如,如果有50个用户使用Windows连接到网络。我可以获得所有50个用户(用户名)的列表吗?
答案 0 :(得分:2)
您可以获得以下所有用户的列表:
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;
}
}
然后根据需要过滤用户