Active Directory и PrincipalPermission
Это скорее любопытство, чем запрос о помощи, но я заметил, что при использовании PrincipalPermission и проверке пользователя как части определенной группы в Active Directory он не будет использовать истинное имя группы, а вместо этого проверяет соответствие группе, предшествующей Windows 2000 имя вместо Обычно это не имеет значения - если кто-то не делает эти значения другими.
Кто-нибудь может подумать, почему.Net API будет использовать это имя группы вместо "истинного" имени? Это вызвало у меня часы горя и немного слепой удачи, чтобы наконец понять все это.
1 ответ
Я бы предположил (не тестируя и не попробовав это сам), что атрибут PrincipalPermission будет использовать "sAMAccountName" в Active Directory для имен пользователей и групп (например, "Users" или "JohnDoe") вместо "различаемого имени" (DN) Вы можете ожидать ("CN=Users", "CN=John Doe").
Причиной этого, скорее всего, будет сценарий, когда вы работаете, например, на автономном сервере или домене NT4. В этих случаях у вас просто нет выделенных имен на основе AD- но у вас есть имена учетных записей SAM.
Так что в некотором смысле это может показаться на первый взгляд немного удивительным - но, на мой взгляд, имеет смысл использовать эти имена учетных записей SAM (имена до AD) - вы не согласны?
Марк
Причина - гарантированная безопасность. ВsamAccountName
Атрибут уникален для всех объектов участников безопасности в домене NTDS. Если бы вместо этого использовался другой атрибут имени, злоумышленник мог легко обойти разрешение безопасности, создав другого пользователя / группу с тем же именем в другом организационном подразделении или контейнере.