Active Directory和PrincipalPermission

这更像是一种好奇心而不是请求帮助,但我注意到当使用PrincipalPermission并validation用户是Active Directory中特定组的一部分时,它不会使用真正的组名,而是针对Windows 2000之前的组进行validation而是改名。 通常这不会产生任何影响 – 除非有人碰巧使这些价值观有所不同。

任何人都可以想到为什么.Net API会使用该组名而不是“真正的”名称? 这给我带来了几个小时的悲伤和一点点的运气,最终弄明白了。

我假设(没有经过测试并亲自尝试过)PrincipalPermission属性将使用Active Directory中的“sAMAccountName”来获取用户名和组名(例如“Users”或“JohnDoe”)而不是“专有名称”(DN)你可能期望(“CN = Users”,“CN = John Doe”)。

这背后的原因很可能是您正在处理的情况,例如独立服务器或NT4域。 在这些情况下,您根本没有任何基于AD的专有名称 – 但您确实拥有SAM帐户名称。

所以从某种意义上说,这一点看起来有点令人惊讶 – 但我认为使用这些SAM帐户名称(AD前名称)确实有意义 – 你不同意吗?