我当前的 C 程序使用 sAMAccountName/domain 跨多个 Active Directory 域进行身份验证。它使用配置文件将域映射到正确的 VIP(虚拟 IP)服务器以进行绑定(bind)和查询。我正在修改它以使用 userPrincipalName,这是一个电子邮件地址。 userPrincipalName 的域部分不一定是映射到 VIP 服务器的同一域。
使用我的帐户,我可以绑定(bind)到任何一台 VIP 服务器,但由于我不一定是该服务器上的 Active Directory 成员,因此我无法查询。现在,我必须遍历每台服务器,直到找到我所属的服务器。这不是我理想的方法。
我的问题是,有没有办法仅使用 userPrincipalName 来检索我所属的 Active Directory 域?我读到可能有一种方法可以通过访问全局目录来实现这一目标。这是正确的方法吗?如果是,如何使用 OpenLDAP LDAP api 完成此操作?如果这不是正确的方法,是否有办法查询我必须查询的第一个 VIP 服务器来询问我的 Active Directory 域是什么?
如有任何帮助,我们将不胜感激。
最佳答案
您可以使用system.security主体,名称将以domain\usename格式返回,第一位是domain,您不需要转到ADp>
mystring= System.Security.Principal.WindowsIdentity.GetCurrent().Name;
关于c - 如何仅使用 C 语言中的用户主体名称以编程方式确定我的 Active Directory 域?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22521030/