我想获取当前已登录用户的员工ID。是否有一些 .Net 类可轻松获得,或者我需要进行某种LDAP查询?欢迎任何提示。
System.DirectoryServices.AccountManagement
功能。请参阅MSDN文章《在.NET Framework 3.5中管理目录安全主体》以获取详细信息。PrincipalContext ctx = new PrincipalContext(ContextType.Domain. "YOURDOMAIN");
UserPrincipal user = UserPrincipal.FindByIdentity(ctx, loginName);
if(user != null)
{
string empID = user.EmployeeId;
}
使用了AD查询 - 非常简单:
DirectorySearcher ds = new DirectorySearcher();
ds.PropertiesToLoad.Add("employeeID");
ds.Filter = String.Format("(&(objectCategory=person)(sAMAccountName={0}))", loginName);
result = ds.FindOne();
if (result != null)
{
personnelNumber = result.Properties["employeeID"][0].ToString();
}