PrincipalContext.ValidateCredentials。用户名格式问题UPN后缀和SimpleBind)

时间:2018-03-15 12:58:38

标签: c# .net active-directory

[有很多相关的帖子,但似乎都没有解释发生的事情]

我发现PrincipalContext.ValidateCredentials出现了奇怪的行为 基本问题是“用户名应该是什么?”

  • user @ domain(用户主要名称)
  • 域\用户(下级名称)
  • user(samAccountName)

有一段时间我使用UserPrincipalName。然后我发现如果用户有UPN后缀(user@xyz.com,其中xyz.com是域中的UPN后缀),则ValidateCredentials失败。

由于我有一个UserPrincipal,我只是更改了代码以传递SamAccountName。 SamAccoundName在域中是全局唯一的,因此无论UserPrincipalName如何,这都可以正常工作。

但现在,我看到如果使用ContextOptions.SimpleBind,则使用SamAccountName不再有效。

根据该函数的文档:userName参数必须采用用户名(例如,mcampbell)而不是domain \ username或username @ domain。

任何人都可以解释这种行为吗?给定UserPrincipal和密码验证用户/密码的“正确”方法是什么?

谢谢,

0 个答案:

没有答案