Active Directory / LDPA 未使用长用户名进行身份验证
Active Directory / LDPA is not being authenticated with long Username
我正在尝试对 Active Directory 用户进行身份验证,如下所示:
方法一:
bool IsValidUser = new PrincipalContext(ContextType.Domain, DomainName).ValidateCredentials(Username, Password);
方法二:
DirectoryEntry DE = new DirectoryEntry("LDAP://" + DomainName, Username, Password);
我尝试了以下凭据:
域名=mydomain.local
用户名=adminldapfooicxrecord
密码=adminldapfooicxrec0rd*
上面的用户名 Method 1
返回 false
而 DE.Children
上的 Method 2
抛出错误 Logon failure: unknown user name or bad password.
如果用户名是 adminldapfooicxrecord@mydomain.local
,它会完美地工作。
为什么会这样?有什么线索吗?
Active Directory 中的用户帐户有两个用户名,您可以使用其中一个进行身份验证:
sAMAccountName
- 这就是通常所说的"username"。它在 AD 用户和计算机 中也被描述为 "User logon name (pre-Windows 2000)"
userPrincipalName
- 这是一个较新的用户名字段,看起来像电子邮件地址。它通常由 sAMAccountName
和 @
域名组成,甚至可以匹配用户的电子邮件地址,但没有技术要求是这样。
如果您使用 userPrincipalName
登录,则必须使用整个值,其中包括 @mydomain.local
.
我正在尝试对 Active Directory 用户进行身份验证,如下所示:
方法一:
bool IsValidUser = new PrincipalContext(ContextType.Domain, DomainName).ValidateCredentials(Username, Password);
方法二:
DirectoryEntry DE = new DirectoryEntry("LDAP://" + DomainName, Username, Password);
我尝试了以下凭据:
域名=mydomain.local
用户名=adminldapfooicxrecord
密码=adminldapfooicxrec0rd*
上面的用户名 Method 1
返回 false
而 DE.Children
上的 Method 2
抛出错误 Logon failure: unknown user name or bad password.
如果用户名是 adminldapfooicxrecord@mydomain.local
,它会完美地工作。
为什么会这样?有什么线索吗?
Active Directory 中的用户帐户有两个用户名,您可以使用其中一个进行身份验证:
sAMAccountName
- 这就是通常所说的"username"。它在 AD 用户和计算机 中也被描述为 "User logon name (pre-Windows 2000)"
userPrincipalName
- 这是一个较新的用户名字段,看起来像电子邮件地址。它通常由sAMAccountName
和@
域名组成,甚至可以匹配用户的电子邮件地址,但没有技术要求是这样。
如果您使用 userPrincipalName
登录,则必须使用整个值,其中包括 @mydomain.local
.