2016-07-25 75 views
0

我怎样才能看到用户是否是管理员或不在活动目录使用C#?将他的名字群体是不是一种选择,因为在不同的语言这个角色的名字是不同的(администраторы,管理员等)活动目录 - 看到用户是管理员c#

+0

你的意思是从程序本身来检查,如果用户是管理员或不是? 我不知道活动目录.. – Slashy

+0

我有内部网站点。用户通过Windows身份验证登录。是否管理 - 他将拥有多少权限。活动目录是获取用户角色的一种方式 –

回答

0

弗拉德,

查询AD以获取管理员组的成员已经问.. 。

Server 2003的here以及this too

由于您的问题似乎是关心区分字符串为“管理员”,在已安装的语言,你会不会只是有这个区域特定的名称,请RESO urces /代码?

0

我怎样才能看到如果用户是管理员或不在活动目录使用C#?

我假定“管理员在活动目录”是指AD的字面管理员(即内建Administrators组的成员)

内建管理员组将总是具有相同的RID (相对标识符) - 对象安全标识符的最后部分 - 544

神火的方式找到管理员组因此简单:

  1. 实例化一个DirectoryEntry为默认的根对象NC
  2. 阅读的objectSID属性根对象价值
  3. 附加知名RID(-544
  4. 实例化基础上产生的SID一个DirectoryEntry(是的,你可以做到这一点)

DirectoryEntry dnc = new DirectoryEntry("LDAP://corp.domain.tld"); 
SecurityIdentifier domainSID = new SecurityIdentifier(dnc.Properties["objectSid"].Value); 

string administratorsGroupSID = String.Format("{0}-544", domainSID); 
string administratorsGroupSIDPath = String.Format("LDAP://<SID={0}>", administratorsGroupSID); 

DirecoryEntry AdministratorsGroupDE = new DirectoryEntry(administratorsGroupSIDPath); 

抢个

相关问题