Question

Alors, voici mon code actuel:

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;
  }
}

Cela a été fait il y a quelques mois par quelqu'un et j'ai du mal à comprendre pourquoi cela ne fonctionne pas. La société vient de passer d’un nom de domaine à un autre. J'étais donc curieux de savoir quel contrôleur de domaine la fonction p.IsInRole (& "; Chaîne &") Utilisera. Je suppose qu'il utilisera le contrôleur de domaine par défaut, quel que soit l'ordinateur utilisé.

Ce qui est étrange, c'est que les ordinateurs du bureau où cela s'exécute pourraient se trouver sur deux domaines distincts. Dans l'objet List<string>, les deux domaines sont possibles. il pourrait donc contenir des éléments tels que " domaineA \ groupA " ;, " domaineA \ userB " ;, domainB \ groupC " ;, et / ou " domainB \ userD ".

Mon problème majeur est que la fonction IsInRole ne renvoie jamais la valeur true. Je sais qu’il devrait le faire. Je l’ai même testé avec les utilisateurs de domainA \ Domain et ai toujours un faux retourné.

Des idées? changer le code est possible, mais pas voulu. je ne suis pas à 100% je peux même le compiler ...

Était-ce utile?

La solution 2

Eh bien, pour résoudre le problème, il me fallait simplement ajouter chaque utilisateur du groupe à la place du nom du groupe ...

Quelqu'un d'autre a des idées?

Autres conseils

Je dois préciser que vous échappez correctement de votre caractère "\" à l'intérieur de vos chaînes. Comme dans & Quot; domaineA \\ groupeA & Quot??

J'ai constaté des problèmes lorsque des personnes essayaient d'utiliser des listes de messagerie Outlook dans Active Directory pour la sécurité basée sur les rôles. Celles-ci apparaissent dans Active Directory et sont difficiles à distinguer des groupes de sécurité réels (ceux que vous pouvez référencer dans les ACL, etc.). Demandez à votre administrateur de vérifier quels groupes que vous utilisez sont des groupes de sécurité.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top