使用C#获取Active Directory用户的不可变ID可以通过以下步骤实现:
using System.DirectoryServices;
using System.DirectoryServices.AccountManagement;
PrincipalContext
对象,用于连接到Active Directory:using (PrincipalContext context = new PrincipalContext(ContextType.Domain))
{
// 在这里执行操作
}
UserPrincipal
类来获取用户对象:using (PrincipalContext context = new PrincipalContext(ContextType.Domain))
{
UserPrincipal user = UserPrincipal.FindByIdentity(context, IdentityType.SamAccountName, "用户名");
if (user != null)
{
// 在这里执行操作
}
}
using (PrincipalContext context = new PrincipalContext(ContextType.Domain))
{
UserPrincipal user = UserPrincipal.FindByIdentity(context, IdentityType.SamAccountName, "用户名");
if (user != null)
{
string immutableId = user.GetUnderlyingObject().Properties["msDS-ImmutableId"].Value.ToString();
// 在这里执行操作
}
}
在上述代码中,我们使用UserPrincipal.FindByIdentity
方法根据用户名查找用户对象。然后,通过GetUnderlyingObject
方法获取用户的底层对象,并使用Properties
属性获取属性集合。不可变ID在Active Directory中的属性名为"msDS-ImmutableId",我们可以通过该属性获取用户的不可变ID。
需要注意的是,上述代码中的ContextType.Domain
表示连接到默认的域,如果需要连接到特定的域,请提供域的名称或IP地址。
推荐的腾讯云相关产品:腾讯云身份认证服务(CAM)
领取专属 10元无门槛券
手把手带您无忧上云