如何从UserPrincipal获取帐户名称?

时间:2015-07-08 07:30:38

标签: c# .net active-directory userprincipal

我在其中一个Winforms应用程序中使用Active Directory登录。我得到一个UserPrincipal对象,但我不确定如何从这个对象中获取正确的帐户名?我可以看到有一个SamAccountName与我的帐户名称相同,但它表明这是旧版本的Windows。那么如何才能获得正确的帐户名称,无论是旧的还是新的Windows系统?

这是我用来获取对象的代码

if (ADUserName.Length > 0)
    context = new PrincipalContext(ContextType.Domain, ADServer, null,  ADUserName, ADUserPassword);
else
    context = new PrincipalContext(ContextType.Domain, ADServer);

UserPrincipal.FindByIdentity(context, account)

1 个答案:

答案 0 :(得分:0)

SamAccountName "帐户名称"因为在引入Active Directory之前,它甚至在中用于Windows。

它"遗产"因为它已被附加信息补充 - 您的"专有名称"在LDAP上下文等 - 但 Windows帐户名称("短名称") - 它仍然是必填字段对于正在创建的任何新用户 - 只需使用它!

有关在AD上下文中使用哪个名称的详细信息,请参阅User naming attributes