如何获取某一域帐号的详细信息 ? winform

kdg2000 2006-05-17 12:59:50
WindowsIdentity.GetCurrent(); // 当前域/用户

可以使用如上办法获取当前登录域帐号

如何根据该帐号来取得他的详细信息呢 ?如 所属组信息,email,等等。。
...全文
296 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
levin9 2006-09-09
  • 打赏
  • 举报
回复
up
kdg2000 2006-05-17
  • 打赏
  • 举报
回复
感谢

君一席话省去了我现翻资料的麻烦

resEnt.GetDirectoryEntry().Properties["mail"].Value.ToString() ;
根据这种方式我已经可以获取诸如显示名称等一些信息

不过我有一个疑问,我想取的是该帐号所在的组的信息列表,这个信息是不能作为一个属性的字段存放的吧,可能不能使用Properties["group"]这种方式获取,

等明天再和系统管理员商量一下再说了。。。
huangkc 2006-05-17
  • 打赏
  • 举报
回复
参数pid变为数组就是用户组
然后再这方法中增加一个循环
如:
for(int i=0;i<pid.Length;i++)
{
...
}
huangkc 2006-05-17
  • 打赏
  • 举报
回复
pid用户ID
你调试时"监视"一下
这是以前我写的,都忘了,当时我只需Email属性,反正常用的属性都有
另外还要看域服务器即域用户设置中有没设置其属性值,若没设置你也取不到值
如email
其本上设置的值你都可通过其属性名(对应其英文名称)来访问
kdg2000 2006-05-17
  • 打赏
  • 举报
回复
谢谢
请问private string GetMail(string pid) 中的pid这个参数是什么?

我看了一下,好像如果要取得什么信息都是在 mySearcher.Filter 这里配置

可是我对这些不太熟悉,能把常见的一些Filter 参数说一下吗 十分感谢
huangkc 2006-05-17
  • 打赏
  • 举报
回复
C# WinForm 这是获取mail信息,其它类推
------------
private string GetMail(string pid)
{
string domain="192.168.0.13";
DirectoryEntry entry = new DirectoryEntry("LDAP://" + domain);
DirectorySearcher mySearcher = new DirectorySearcher(entry);
mySearcher.Filter = ("(&(objectClass=user)(displayname=" + pid.ToString() +"))");
try
{
SearchResult resEnt = mySearcher.FindOne();

//如果返回值不是null(存在该用户)
if(resEnt!=null)
{
if ( resEnt.GetDirectoryEntry().Properties["mail"].Value!=null)
{
if(resEnt.GetDirectoryEntry().Properties["displayname"].Value.ToString()==pid.ToString())
{

mail = mail + resEnt.GetDirectoryEntry().Properties["mail"].Value.ToString() + ";";
}
}
else
{
mail="";
}
}
}
catch
{
MessageBox.Show("用户名与密码有误");
mail="";

}


mySearcher = null;
entry.Close();
}
{

110,571

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧