Pregunta

Así que aquí está mi código actual:

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

Esto fue hecho hace un par de meses por alguien y estoy teniendo dificultades para entender por qué no funciona. La compañía recientemente se mudó de un nombre de dominio a otro. Así que tenía curiosidad por saber qué controlador de dominio utilizará la función p.IsInRole (& Quot; String & Quot;). Supongo que va a usar el DC predeterminado por lo que sea que esté usando la computadora.

El elemento extraño es que las computadoras en la oficina donde se ejecuta esto podrían estar en 2 dominios separados. En el objeto List<string>, tengo ambos dominios posibles. por lo que podría contener elementos como " dominioA \ groupA " ;, " dominioA \ userB " ;, dominioB \ groupC " ;, y / o " domainB \ userD " ;.

Entonces, mi principal problema es que la función IsInRole nunca devuelve verdadero. Sé que debería, incluso lo probé con el dominio A \ Usuarios de dominio y aún recibo un falso devuelto.

¿Alguna idea? cambiar el código es posible, pero no deseado. no estoy 100%, incluso puedo compilarlo ...

¿Fue útil?

Solución 2

Bueno, para solucionar el problema solo tenía que agregar específicamente a cada usuario del grupo en lugar del nombre del grupo ...

¿Alguien más tiene alguna idea?

Otros consejos

Tengo que señalar, ¿realmente estás escapando de tu carácter '\' correctamente dentro de tus cadenas? Como en & Quot; domainA \\ groupA & Quot ;?

He visto problemas cuando las personas intentan usar las listas de correo electrónico de Outlook en Active Directory para la seguridad basada en roles. Estos aparecen en Active Directory y son difíciles de distinguir de los grupos de seguridad reales (a los que puede hacer referencia en ACL, etc.). Haga que su administrador verifique los grupos que está utilizando que son grupos de seguridad.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top