1

我在我的一个 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)
4

1 回答 1

0

SamAccountName 在引入 Active Directory之前在 Windows 中使用的“帐户名”

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

有关在 AD 上下文中使用哪个名称的更多详细信息,请参阅用户命名属性。

于 2015-07-08T08:36:56.583 回答