0


IsInRole()보다 PrincipalPermission을 선택해야하는 이유는 무엇입니까?

Q1 - 나는 우리가 PrincipalPermission.Union를 사용하는 것을 선호해야하는 이유를 이해 확실하지 않다() (또는 PrincipalPermission.Intersect()) 대신 에서 IsInRole()의? 에서 IsInRole 호출() 여러 번 연합() 여러 PrincipalPermission 객체를 생성하고 를 통해 하나로 병합 이하의 코드를 필요로 아무것도 (또는 교차()를)?


Q2 - PrincipalPermission 객체의 생성자 한 과부하 또한, 사용자가 인증되었는지 확인하기 요구량() 지시 플래그 IsAuthenticated는 지정. 이 플래그를 사용하지 않으면 처음 두 매개 변수 (이름이역할)가 모두 null 인 경우에 유용할까요?


고맙습니다

답변

2

Q1. - RE : PrincipalPermission 메서드와 IPrincipal.IsInRole (..)

두 함수 호출은 사용자가 지정한 역할의 결합 또는 교차 부분이있는 PrincipalPermission을 만듭니다. 따라서 매우 특정한 요구 사항을 가진 교장이되어 결국 IsInRole()을 호출 할 수 있습니다. 이 작업을 수행하면 역할 서버 (SQL Server 또는 활성 디렉토리 일 수 있으므로 대기 시간이 길어질 수 있음)가 발생하므로 항상 수행하고 싶지는 않습니다.

2. - RE : PrincipalPermission 인증

Authenticated는 사용자가 공급자와 로그인했음을 나타냅니다. 응용 프로그램에 대한 감사 만 수행하면 사용자가 역할 제공 업체에 로그인했는지 확인하면 자신이 누구인지 등을 기록 할 수 있습니다.

당신이 정확하지 않은 경우에만 유용합니다.

+0

Q1 - PrincipalPermission.Union() 또는 PrincipalPermission.Intersect()를 사용하여 수행 할 수있는 작업 외에 IsInRole() 및 많은 작업을 수행 할 수 있습니다. 적은 타이핑?! – SourceC

+1

예.하지만 두 번 호출해야합니다. 이후에 주체의 합집합 또는 교차점 인 하나의 기본 권한을 만든 다음 IsInRole()을 한 번 호출합니다. 또한 intersect/union을 설정하면 각 역할의 역할에 따라 결과가 달라집니다. http://en.wikipedia.org/wiki/Intersection_(set_theory) http://en.wikipedia.org/wiki/Union_(set_theory) – Spence

+0

죄송합니다.이 주제를 드래그해서 죄송합니다. 여러 개의 다른 경우에 동일한 병합 (교차/결합을 통해) PrincipalPermission 객체를 사용합니까?! 나는 아마도 아주 명백한 것을 잃어 버릴 것입니다. – SourceC

관련 문제