2009-03-02 5 views
3

asp.net 동적 데이터 사이트에서 활성 디렉토리 역할을 사용하여 보안을 구현하는 가장 좋은 방법은 무엇입니까?동적 데이터 및 Active Directory를 사용하여 역할 기반 보안을 구현하는 방법은 무엇입니까?

특정보기 (및 관련 링크)를 특정 역할로 제한하고 싶습니다. 즉, 사용자 A 할 수있는 테이블 x와 사용자 B 만 목록보기 작업을 할 수있는 테이블 Y에만 목록보기 작업 당신은 단지 응용 프로그램에 사용자를 인증 \ 권한을 부여하기 위해 ASP.NET Active Directory의 Memebrship & 역할 공급자를 사용할 수 있습니다

답변

0

. 그런 다음 Roles.IsUserInRole으로 전화하여 콘텐츠를 렌더링하기 전에 사용자가 관련 그룹의 일부인지 확인하기 위해 AD 역할 구성원 자격을 확인해야합니다.

2

많은 응용 프로그램에서이 작업을 수행했습니다.

응용 프로그램에 대해 Windows 인증을 사용하도록 설정하십시오.

사용자 자격 증명을 저장하고 해당 개체를 세션에 저장하여 빠른 검색을 수행 할 수있는 개체를 만듭니다. 거기에 없으면 신속하게 다시 작성할 수 있습니다. 나는 일반적으로 각각의 역할은 비트 등을 설정 한 : 그럼 언제 컨트롤이 확보 될 필요가


enum USER_ROLE : int 
{ 
    Role1 = 1, 
    Role2 = 2, 
    Role3 = 4, 
    Role4 = 8, 
    etc 
} 

if (Context.User.IsInRole("Roll1Name")) YourUserObject.Roles += USER_ROLE.Role1; 
if (Context.User.IsInRole("Roll2Name")) YourUserObject.Roles += USER_ROLE.Role2; 
etc 

가, 내가 HtmlControl 사용자의 역할에 따라 속성과 보안 요구 사항에 대한 소요 함수로 전달 그 통제.

예 : 부울 SetControlSecurity은 (HtmlControl Ctrl 키, INT iUserRoles, INT iControlRoles, ACTION eAction)

그래서 패널을 수행하는 예는 다음과 같을 수 있습니다

SetControlSecurity (pnlUserInfo, YourUserObject.Roles, eRole.Role2, ACTION.Hide);

나는 보통 또한 숨기기 등의 보안 실패에 수행 할 작업 유형에 PARAM 받아 가지고, 읽기 전용, 명확한 데이터는 등 ... 기능의 역할을 비교

쉽게 :


bool bHasAccess = ((iUserRole & iControlRoles) > 0); 
if (bHasAcess) 
{ 
    // leave the control or make sure it is visible etc 
} 
else 
{ 
    // take action to secure the control based on the action 
} 

희망이 있습니다.

관련 문제