2011-03-04 9 views
1

Google에 AD와 통합 된 Sitecore가 있습니다. 사용자는 액세스 수준 2의 두 가지 수준과 상승 된 권한을 필요로하는 다른 모든 수준이 있습니다. 사용자에게 부여 된 액세스 수준은 두 개의 쿠키에 의해 결정됩니다. 하나는 aspxauto 쿠키로 30 년 후에 만료되고 다른 하나는 세션이 끝날 때 만료됩니다 (다른 모든 것은 레벨 4라고합니다). level4 쿠키에는 사용자가 속한 역할 목록이 있습니다 (이 목록은 사용자가 AD에있는 역할 목록의 하위 집합입니다).Sitecore - 사용자의 역할 제한

사용자에게 로그인하여 사용 가능한 쿠키를 기반으로 역할에 추가해야합니다.

지금까지 GetRolesForUser 메서드를 재정의하고 쿠키의 역할 만 반환하는 내 자신의 ADRoleProvider를 만들었습니다. 하지만이 기능은 작동하지 않습니다. 보안 페이지에 직접 들어가면 쿠키가 존재하지 않아도 사용자가 AD의 역할을 담당하기 때문에 나를 들여 보낼 수 있습니다.

사용자가있는 모든 역할을 AD에서 삭제할 수 없으며 명백한 이유로 쿠키에 지정된 역할에만 사용자를 추가 할 수 있습니다. 사용자가 역할에 있지 않다고 생각하여 Sitecore를 트릭하는 방법이 있습니까?

-Victor

답변

1

당신은 대해 isUserInRole 메소드를 오버라이드 (override)하려고 했습니까? Sitecore가 액세스 권한을 확인하려고 할 때도 사용되는 것 같습니다.

+0

Alex, 머리에 손톱이 맞았습니다. LightAD ADRoleProvider를 상속하고 IsUserInRole 및 GetRolesForUser 메서드를 오버로드합니다.이 작업은 Item Resver 이후에 일부 IsUserInRoleCache 및 AccessResultCache 지우기 및 사용자 지정 파이프 라인 프로세스와 함께 필요한 모든 작업을 수행합니다. 당신의 리드를 가져 주셔서 감사합니다! – VFein

관련 문제