如何仅使用C中的用户主体名以编程方式确定我的Active Directory域?

时间:2014-03-20 00:25:33

标签: c active-directory ldap

我当前的C程序使用sAMAccountName / domain在多个活动目录域中进行身份验证。它使用配置文件将域映射到正确的VIP(虚拟IP)服务器以进行绑定和查询。我正在修改它以使用userPrincipalName,这是一个电子邮件地址。 userPrincipalName的域部分不一定是映射到VIP服务器的域。

使用我的帐户,我可以绑定到任何一个VIP服务器,但由于我不一定是该服务器上的Active Directory成员,我无法查询。现在,我必须遍历每个服务器,直到找到我所属的服务器。这不是我理想的做法。

我的问题是,有没有办法只使用userPrincipalName检索我是其成员的Active Directory域?我已经读过可能有办法通过访问全局目录来实现这一目标。这是正确的方法,如果是这样,如何使用OpenLDAP LDAP api完成?如果这不是正确的方法,有没有办法查询第一个VIP服务器,我一定会问我的Active Directory域是什么?

任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:0)

你可以使用system.security主体和名称将以域\用户名格式返回第一位是域名,你不需要去AD

mystring= System.Security.Principal.WindowsIdentity.GetCurrent().Name;