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

标签 c active-directory ldap

我当前的 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/

相关文章:

java - JNDI 使用 ADS 将用户添加到组

c - strerror_r 无效

java - 如何拦截用户与 UI 交互产生的 motionEvents 和 keyEvents

node.js - 身份验证问题 - 从 azure 函数调用 Azure REST API

ldap - 如何进行 LDAP 查询以仅返回所有级别中具有 OU=Groups 的组?

LDAP查询群组成员

c - 修复 K&R 书中第 6.5 章示例中的内存泄漏(自引用结构)

c++ - Windows 上的 C 编译器之间的实际区别是什么?

powershell - 如何从 Get-ADUser 获取所有字段?

asp.net-mvc - 更改 Active Directory 安全组和用户角色的时间滞后