[有很多相关的帖子,但似乎都没有解释发生的事情]
我发现PrincipalContext.ValidateCredentials出现了奇怪的行为 基本问题是“用户名应该是什么?”
有一段时间我使用UserPrincipalName。然后我发现如果用户有UPN后缀(user@xyz.com,其中xyz.com是域中的UPN后缀),则ValidateCredentials失败。
由于我有一个UserPrincipal,我只是更改了代码以传递SamAccountName。 SamAccoundName在域中是全局唯一的,因此无论UserPrincipalName如何,这都可以正常工作。
但现在,我看到如果使用ContextOptions.SimpleBind,则使用SamAccountName不再有效。
根据该函数的文档:userName参数必须采用用户名(例如,mcampbell)而不是domain \ username或username @ domain。
任何人都可以解释这种行为吗?给定UserPrincipal和密码验证用户/密码的“正确”方法是什么?
谢谢,