문제

그래서 여기 내 코드는 다음과 같습니다.

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를 사용한다고 가정합니다.

홀수 항목은이 실행중인 사무실의 컴퓨터가 2 개의 분리 된 도메인에있을 수 있다는 것입니다. 에서 List<string> 물체, 나는 두 도메인을 모두 가지고 있습니다. 따라서 "domaina groupa", "domaina userb", domainb groupc "및/또는"domainb userd "와 같은 항목이 포함될 수 있습니다.

따라서 나의 주요 문제는 Isinrole 기능이 결코 반환되지 않는다는 것입니다. 나는 그것이 Domaina Domain 사용자로 테스트했지만 여전히 허위 반환을 받는다는 것을 알고 있습니다.

어떤 아이디어? 코드 변경은 가능하지만 원하지는 않습니다. 나는 100%가 아닙니다. 심지어 컴파일 할 수도 있습니다 ...

도움이 되었습니까?

해결책 2

글쎄, 문제를 해결하기 위해 그룹 이름 대신 그룹의 각 사용자를 구체적으로 추가해야했습니다 ...

다른 사람이 아이디어가 있습니까?

다른 팁

지적해야합니다. 실제로 당신은 당신의 문자열 안에서 당신의 ''캐릭터를 올바르게 탈출하고 있습니까? "domaina groupa"에서와 같이?

사람들이 역할 기반 보안을 위해 Active Directory에서 Outlook 이메일 목록을 사용하려고 할 때 문제를 보았습니다. 이것들은 Active Directory에 표시되며 실제 보안 그룹 (ACL 등에서 참조 할 수있는 실제 보안 그룹)과는 별도로 말하기 어렵습니다. 관리자가 사용중인 그룹이 보안 그룹임을 확인하도록하십시오.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top