如何从 UserPrincipal 获取帐户名?
How do I get the account name from 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)
SamAccountName
是"account name",因为它在Windows甚至之前 引入了 Active Directory。
它是 "legacy",因为它已由其他信息补充 - 您的 "distinguished name" 在 LDAP 上下文中等 - 但它 是 Windows 帐户名 ("short name") - 它仍然是任何正在创建的新用户的必填字段 - 只需使用它!
有关名称在 AD 上下文中的用途的详细信息,请参阅 User naming attributes。
我在我的一个 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)
SamAccountName
是"account name",因为它在Windows甚至之前 引入了 Active Directory。
它是 "legacy",因为它已由其他信息补充 - 您的 "distinguished name" 在 LDAP 上下文中等 - 但它 是 Windows 帐户名 ("short name") - 它仍然是任何正在创建的新用户的必填字段 - 只需使用它!
有关名称在 AD 上下文中的用途的详细信息,请参阅 User naming attributes。