C# 如何在c中获取不同林中的所有广告用户#

C# 如何在c中获取不同林中的所有广告用户#,c#,php,multiple-domains,C#,Php,Multiple Domains,我有一个具有windows身份验证的MVC2应用程序。出于用户映射的目的,我已将所有广告用户加载到下拉列表中。我有一个新的要求,即将不同域中的所有广告用户加载到上述下拉列表中。为了获得用户的详细信息,如名字、姓氏等。有人能告诉我,是否有任何可能的方法使用c#实现此功能?下面是我的代码,我正在使用它来获取单个林中的所有广告用户 List<UserMgtModelsMetadata> userList = new List<UserMgtModelsMetadata>();

我有一个具有windows身份验证的MVC2应用程序。出于用户映射的目的,我已将所有广告用户加载到下拉列表中。我有一个新的要求,即将不同域中的所有广告用户加载到上述下拉列表中。为了获得用户的详细信息,如名字、姓氏等。有人能告诉我,是否有任何可能的方法使用c#实现此功能?下面是我的代码,我正在使用它来获取单个林中的所有广告用户

List<UserMgtModelsMetadata> userList = new List<UserMgtModelsMetadata>();
            string username = ConfigurationManager.AppSettings["ADUsername"].ToString();
            string password = ConfigurationManager.AppSettings["ADPassword"].ToString();
            string path = ConfigurationManager.AppSettings["Path"].ToString();
            string domain = ConfigurationManager.AppSettings["Domain"].ToString();
            DirectoryEntry myLdapConnection = new DirectoryEntry(path, username, password);

            DirectorySearcher search = new DirectorySearcher(myLdapConnection);

            search.PropertiesToLoad.Add("displayname");
            search.PropertiesToLoad.Add("samaccountname");  //Username
            search.PropertiesToLoad.Add("givenname");   //Firstname
            search.PropertiesToLoad.Add("sn");  //Lastname
            search.PropertiesToLoad.Add("userprincipalname");
            search.PropertiesToLoad.Add("memberof");

            SearchResultCollection result = search.FindAll();

            if (result != null)
            {
                for (int i = 0; i < result.Count; i++)
                {
                    ResultPropertyCollection fields = result[i].Properties;

                    if ((fields["displayname"].Count > 0) && (fields["samaccountname"].Count > 0) && (fields["givenname"].Count > 0) && (fields["sn"].Count > 0) && (fields["userprincipalname"].Count > 0))
                    {
                        string mail = fields["userprincipalname"][0].ToString();
                        int index = mail.IndexOf("@") > 0 ? mail.IndexOf("@") : 0;

                        string fullName = (fields["givenname"][0].ToString() +" "+ fields["sn"][0].ToString());
                        if (fullName.Length > 20)
                        {
                            fullName = fullName.Substring(0, 20);
                        }

                        if (!group.Equals(" "))
                        {
                            bool isMember = false;
                            foreach (var item in fields["memberof"])
                            {
                                isMember = item.ToString().Contains("CN=" + group);
                                if (isMember == true)
                                {
                                    break;
                                }
                            }

                            if (isMember == true)
                            {
                                userList.Add(new UserMgtModelsMetadata
                                                    {
                                                        displayName = fullName,
                                                        username = fields["samaccountname"][0].ToString(),
                                                        firstName = fields["givenname"][0].ToString(),
                                                        lastname = fields["sn"][0].ToString(),
                                                        email = mail.Substring(0, index).ToLower() + domain
                                                    });
                            } 
                        }
                        else
                        {
                            userList.Add(new UserMgtModelsMetadata
                                                {
                                                    displayName = fullName,
                                                    username = fields["samaccountname"][0].ToString(),
                                                    firstName = fields["givenname"][0].ToString(),
                                                    lastname = fields["sn"][0].ToString(),
                                                    email = mail.Substring(0, index).ToLower() + domain
                                                }); 
                        }
                    }
                }`
List userList=newlist();
字符串用户名=ConfigurationManager.AppSettings[“ADUsername”].ToString();
字符串密码=ConfigurationManager.AppSettings[“ADPassword”].ToString();
字符串路径=ConfigurationManager.AppSettings[“路径”].ToString();
string domain=ConfigurationManager.AppSettings[“域”].ToString();
DirectoryEntry myLdapConnection=新的DirectoryEntry(路径、用户名、密码);
DirectorySearcher search=新的DirectorySearcher(MyLDAP连接);
search.PropertiesToLoad.Add(“displayname”);
search.PropertiesToLoad.Add(“samaccountname”)//用户名
search.PropertiesToLoad.Add(“givenname”)//名字
search.PropertiesToLoad.Add(“序号”)//姓氏
search.PropertiesToLoad.Add(“userprincipalname”);
search.PropertiesToLoad.Add(“memberof”);
SearchResultCollection result=search.FindAll();
如果(结果!=null)
{
for(int i=0;i0)和&(字段[“samaccountname”].Count>0)和&(字段[“givenname”].Count>0)和&(字段[“userprincipalname”].Count>0))
{
字符串邮件=字段[“userprincipalname”][0].ToString();
int index=mail.IndexOf(“@”)>0?mail.IndexOf(“@”):0;
字符串全名=(字段[“givenname”][0].ToString()+“”+字段[“sn”][0].ToString());
如果(fullName.Length>20)
{
fullName=fullName.Substring(0,20);
}
如果(!group.Equals(“”)
{
bool-isMember=false;
foreach(字段[“memberof”]中的变量项)
{
isMember=item.ToString()包含(“CN=“+group”);
如果(isMember==true)
{
打破
}
}
如果(isMember==true)
{
添加(新的UserMgtModelsMetadata)
{
displayName=全名,
用户名=字段[“samaccountname”][0]。ToString(),
firstName=字段[“givenname”][0]。ToString(),
lastname=fields[“sn”][0]。ToString(),
email=mail.Substring(0,索引).ToLower()+域
});
} 
}
其他的
{
添加(新的UserMgtModelsMetadata)
{
displayName=全名,
用户名=字段[“samaccountname”][0]。ToString(),
firstName=字段[“givenname”][0]。ToString(),
lastname=fields[“sn”][0]。ToString(),
email=mail.Substring(0,索引).ToLower()+域
}); 
}
}
}`
请展示您的问题。您应该至少包括您遇到问题的代码的大纲(但最好是a),然后我们可以尝试帮助解决具体问题。您还应该阅读。请展示您的问题。您应该至少包括大纲(但最好是a)对于您遇到问题的代码,我们可以尝试帮助您解决具体问题。您还应该阅读。