WindowsPrincipal.IsInRole() не возвращает ожидаемый результат

Итак, вот мой текущий код:

List<string> rowGroups = GetFileGroups((int)row.Cells["document_security_type"].Value);
bool found = false;
System.Security.Principal.WindowsPrincipal p = new System.Security.Principal.WindowsPrincipal(System.Security.Principal.WindowsIdentity.GetCurrent());

foreach (string group in rowGroups)
{
  if (p.IsInRole(group))
  {
    found = true;
    break;
  }
}

Это было сделано пару месяцев назад кем-то, и мне трудно понять, почему это не работает. Компания недавно перешла от одного доменного имени к другому. Поэтому мне было любопытно, какой контроллер домена будет использовать функция p.IsInRole("String"). Я предполагаю, что он будет использовать DC по умолчанию независимо от того, какой компьютер использует.

Странно, что компьютеры в офисе, где это работает, могут находиться в двух отдельных доменах. в List<string> объект, у меня есть оба возможных домена. поэтому он может содержать такие элементы, как "domainA\groupA", "domainA\userB", domainB\groupC"и / или"domainB\userD".

Поэтому моя главная проблема заключается в том, что функция IsInRole никогда не возвращает true. я знаю, что должен, я даже проверил это с пользователями domainA\Domain и все еще получил ложное возвращение.

Есть идеи? изменение кода возможно, но не требуется. я не 100%, я могу даже скомпилировать это...

3 ответа

Решение

Ну, чтобы решить проблему, мне просто нужно было добавить каждого пользователя группы вместо имени группы...

У кого-то еще есть идеи?

Я должен указать на то, что вы действительно правильно экранировали свой символ \ внутри своих строк? Как в "домене A\\groupA"?

Я видел проблемы, когда люди пытались использовать списки электронной почты Outlook в Active Directory для обеспечения безопасности на основе ролей. Они отображаются в Active Directory и их трудно отличить от реальных групп безопасности (на которые вы можете ссылаться в ACL и т. Д.). Попросите своего администратора проверить, какие группы вы используете, это группы безопасности.

Другие вопросы по тегам