Windows Active Directory - 用户名中的特殊字符

red*_*man 7 active-directory

我有一个没有特殊字符的 AD 用户(Š = S with caron),例如myspecialuser. 为什么我可以使用用户名中的特殊字符登录到 Windows,myšpecialuser例如,即使它不存在?如何禁用此行为?

Reg*_*gan 9

微软是故意这样做的。参见这篇文章: 微软变音符号

我还发现这可以直接回答您的问题,不,您不能禁用该行为。

最近有人问:

任何人都可以将我指向包含 AD 用户名(W2K 和 W2K3)允许字符列表的文档吗?我也在寻找描述在登录过程中替换某些字符的行为的文档。示例:如果我的用户名是 ddomjanovic,我也可以使用用户名 ddomjanovi? 登录。所以它看起来像?(codepage 1250, E6 = U+0107 : LATIN SMALL LETTER C WITH ACUTE) 在登录过程中替换为 c (63 = U+0063 : LATIN SMALL LETTER C)。

可以禁用此行为吗?

我在这篇文章中回答了这个问题,但是以一种迂回的方式。简短的回答是否定的,没有办法禁用该行为。原因是 Active Directory 传递以下标志:

NORM_IGNORECASE | NORM_IGNORENONSPACE | NORM_IGNOREWIDTH | NORM_IGNOREKANA

这意味着有许多像这样的区别被折叠在一起。

现在正如另一篇文章所述,本地帐户不能通过 AD 工作,因此他们对事物采取更直接的立场。你知道,整个“大写和二进制”的东西不仅考虑 c (U+0063) 和 ? (U+0107) 是不同的字母,但哪个也考虑?(U+0107) 和 c? (U+0063 U+0301) 也是不同的。既然后一对长得一模一样,那对很多人来说显然是一个比原问题更糟糕的解决方案!

摘自:整理一下