如何在ASP.NET中列出Windows用户和组?

如何在ASP.NET中列出Windows用户和组?,asp.net,windows,active-directory,Asp.net,Windows,Active Directory,我有一个ASP.NET网站项目,我需要列出Windows系统上的所有用户及其组。我已经将身份模拟设置为true,并在web.config中提供了管理员的用户名和密码。我从哪里开始 提前谢谢 更新: 我现在有以下代码- var machine = new DirectoryEntry("WinNT://<IP ADDRESS>"); foreach (DirectoryEntry child in machine.Children)

我有一个ASP.NET网站项目,我需要列出Windows系统上的所有用户及其组。我已经将身份模拟设置为true,并在web.config中提供了管理员的用户名和密码。我从哪里开始

提前谢谢

更新:

我现在有以下代码-

    var machine = new DirectoryEntry("WinNT://<IP ADDRESS>");
                foreach (DirectoryEntry child in machine.Children)
                {
                   // get the child's group(s).
                }
var machine=newdirectoryEntry(“WinNT://”);
foreach(machine.Children中的DirectoryEntry子级)
{
//获取孩子的组。
}

调试时,我可以在machine.Children中看到用户列表。如何找到该用户所属的组?

本文介绍了如何与Active Directory通话,并应将您带到您想去的地方:

要获得用户,您可以执行以下操作:

public List<string> GetUserList()
{
        string DomainName="";
        string ADUsername="";
        string ADPassword="";

        List<string> list=new List<string>();
        DirectoryEntry entry=new DirectoryEntry(LDAPConnectionString, ADUsername, ADPassword);
        DirectorySearcher dSearch=new DirectorySearcher(entry);
        dSearch.Filter="(&(objectClass=user))";

        foreach(SearchResult sResultSet in dSearch.FindAll())
        {
            string str=GetProperty(sResultSet, "userPrincipalName");
            if(str!="")
                list.Add(str);
        }
        return list;
}
public List GetUserList()
{
字符串域名=”;
字符串ADUsername=“”;
字符串ADPassword=“”;
列表=新列表();
DirectoryEntry=新的DirectoryEntry(LDAPConnectionString、ADUsername、ADPassword);
DirectorySearch dSearch=新的DirectorySearch(条目);
dSearch.Filter=“(&(objectClass=user))”;
foreach(dSearch.FindAll()中的SearchResult sResultSet)
{
string str=GetProperty(sResultSet,“userPrincipalName”);
如果(str!=“”)
添加(str);
}
退货清单;
}

您可能希望从.net中的DirectoryEntry和Active Directory支持开始

这里有一个很好的资源:

本地访问类似,即使您不在域中:

DirectoryEntry localMachine = new DirectoryEntry("WinNT://" +
               Environment.MachineName);
DirectoryEntry admGroup = localMachine.Children.Find("administrators",
               "group");
object members = admGroup.Invoke("members", null);
foreach (object groupMember in (IEnumerable)members) {
  DirectoryEntry member = new DirectoryEntry(groupMember);
  //...
}

谢谢,看来我需要在Windows机器上设置LDAP服务器。有没有办法,我可以在不设置LDAP的情况下获取列表?您实际上不需要在web.config中设置任何管理员权限,因为我认为Active Directory中的每个人都应该具有对用户和组的读取权限。除非您需要知道哪个用户正在查看您的页面,否则您实际上不需要身份模拟。