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