admanager.cs
来自「AD(Active Directory)以不同的数据源显示数据的实现(包含源代码」· CS 代码 · 共 86 行
CS
86 行
/*
* Author : 方伍
* Date: 2007-12-10
* Blog: http://www.cnblogs.com/binbin1845
* QQ: 32418201
* Email: binbin1845@126.com
*/
using System;
using System.Collections.Generic;
using System.Collections;
using System.Text;
using System.DirectoryServices;
using System.Data;
using System.Windows.Forms;
namespace ADApplication
{
public class ADManager
{
string adAddress;
string account;
string password;
public IList<UserInfo> users;
public ADManager(string adAddress, string account, string password)
{
this.adAddress = adAddress;
this.account = account;
this.password = password;
GetUserData();
}
private IList<UserInfo> GetUserData()
{
users = new List<UserInfo>();
DirectoryEntry entry = new DirectoryEntry(adAddress, account, password);
DirectorySearcher mySearcher = new DirectorySearcher(entry);
mySearcher.Filter = "(objectClass=user)";
mySearcher.SearchScope = SearchScope.Subtree;
try
{
SearchResultCollection results = mySearcher.FindAll();
UserInfo user;
foreach (SearchResult result in results)
{
user = new UserInfo();
user.Account = GetProperty(result, UserInfo.ACCOUNT_AD);
user.FirstName = GetProperty(result, UserInfo.FIRSTNAME_AD);
user.LastName = GetProperty(result, UserInfo.LASTNAME_AD);
user.Email = GetProperty(result, UserInfo.EMAIL_AD);
users.Add(user);
}
}
catch
{
throw new Exception("Can't connect to Active Directory.");
}
return users;
}
public object GetDataSource(DataSourceType type)
{
DataSourceFactory factory = new DataSourceFactory();
IDataSource source = factory.CreateDataSource(type);
foreach (UserInfo user in users)
{
source.AddLine(user);
}
return source.GetData();
}
private static string GetProperty(SearchResult searchResult, string PropertyName)
{
if (searchResult.Properties.Contains(PropertyName))
{
return searchResult.Properties[PropertyName][0].ToString();
}
else
{
return string.Empty;
}
}
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?