- 爱易网页
-
C#教程
- C#怎么获取AD上的信息
日期:2014-05-18 浏览次数:21034 次
C#如何获取AD上的信息
DirectoryEntry de = new DirectoryEntry();
de.Path = "LDAP://CN=Users,DC=*****,DC=*****";
de.Username = "sz-hq\\a110904";
de.Password = "111333";
SearchResultCollection results;
DirectorySearcher srch = new DirectorySearcher(de);
srch.Filter = "(&(&(objectCategory=person)(objectClass=user)))";
results = srch.FindAll();
foreach (SearchResult sr in results)
{
DirectoryEntry objDE = sr.GetDirectoryEntry();
string userName = objDE.Name.Substring(3);
DropDownList1.Items.Add(userName);
}
对于DirectoryEntry.Path的值我一直很不懂(CN,DC到底填什么),希望能给我点启示..
我的域是sz-hq,,我的登录账户是a110904密码111333,我现在是想获取域中所有的成员信息
------解决方案--------------------
private const string domainName = "10.40.1.190";//102
private const string domainName102 = "10.40.1.102";
private const string adAdmin = "xingang.zhang";
private const string password = "123689Px";
private const string ouName = "Primax Users";
private const string ConnStr = "server=10.40.1.199;database=MIAD;User Id=eacsuser;Password=Eacs.123";
public Form1()
{
InitializeComponent();
}
SqlConnection conn = new SqlConnection(ConnStr);
private void butStart_Click(object sender, EventArgs e)
{
if (this.butStart.Text.IndexOf("停止") > -1)
{
this.tim190.Enabled = false;
numTime.Enabled = true;
butStart.Text = "定時抓取AD【190|102】數據";
this.butStart.Refresh();
this.tim190.Enabled = false;
}
else
{
this.pbPdm.Minimum = 0;
this.pbPdm.Maximum = 2500;
this.pbPdm.Value = 0;
numTime.Enabled = false;
butStart.Text = "停止";
this.butStart.Refresh();
this.tim190.Enabled = true;
}
}
private void GetADUserLastLogon(string strdomainName,string stradAdmin,string strpassword)
{
string sql = "";
this.lbLog.Items.Clear();
int k = 0;
DataTable dt = new DataTable();
dt.Columns.Add("sAMAccountName");//帐号
dt.Columns.Add("Name");//姓名
dt.Columns.Add("mail"); //邮箱地址
dt.Columns.Add("OU"); //用户组织
dt.Columns.Add("LasLogo");
DirectoryEntry adRoot = new DirectoryEntry("LDAP://" + strdomainName, stradAdmin, strpassword, AuthenticationTypes.Secure);
DirectoryEntry ou = adRoot.Children.Find("OU=" + ouName);
DirectorySearcher mySearcher = new DirectorySearcher(ou);
mySearcher.Filter = ("(objectClass=user)"); //user表示用户,group表示组
mySearcher.SizeLimit = 10000;
mySearcher.PageSize = 10000;
DateTime? tmp = null;
try
{
foreach (System.DirectoryServices.SearchResult resEnt in mySearcher.FindAll())
{
DataRow dr = dt.NewRow();
dr["sAMAccountName"] = string.Empty;