동적 데이터 및 Active Directory를 사용하여 역할 기반 보안을 구현하는 방법은 무엇입니까?

StackOverflow https://stackoverflow.com/questions/604175

문제

ASP.NET 동적 데이터 사이트에서 Active Directory 역할을 사용하여 보안을 구현하는 가장 좋은 방법은 무엇입니까?

특정 견해 (및 관련 링크)를 특정 역할로 제한하고 싶습니다. IE 사용자 A는 표 X에 대한 목록 작업 만 볼 수 있으며 사용자 B는 표 Y의 목록 작업 만 볼 수 있습니다.

도움이 되었습니까?

해결책

나는 이것에 관한 많은 기사가 있습니다. 블로그 여기에 사용자 역할을 사용한 DynamicData 속성 기반 권한 솔루션 그리고 여기DynamicData : 데이터베이스 기반 권한 -1 부 그리고 나는 또한 Alok을했을 것입니다 CodePlex에서 동적 데이터 샘플 보안 경로 처리기를 사용합니다.

다른 팁

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

응용 프로그램에 Windows 인증을 활성화해야합니다.

사용자 자격 증명을 저장할 수있는 객체를 만들고 Quick Retreival을 위해 세션에 해당 객체를 저장하십시오. 거기에 없다면 신속하게 재건 할 수 있습니다. 나는 보통 각 역할을 조금씩 설정합니다.


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을 취하는 기능과 사용자의 역할과 해당 제어에 대한 보안 요구 사항을 기반으로 속성을 전달합니다.

예를 들어. bool setcontrolsecurity (htmlcontrol ctrl, int iuserroles, int icontrolroles, action eaction)

따라서 패널을 수행하는 예는 다음과 같습니다.

setControlSecurity (pnluserinfo, youruseroBject.roles, erole.role2, action.hide);

나는 또한 보통 숨기기, 읽기, 명확한 데이터 등과 같은 보안의 실패에 대해 수행하기 위해 행동 유형에 따라 매개 변수를 갖습니다 ...

기능의 역할 비교는 쉽습니다.


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
}

도움이되기를 바랍니다.

ASP.NET Active Directory MemeBRISH & REAL PROVIDER를 사용하여 사용자를 응용 프로그램에 인증 할 수 있습니다. 그런 다음 전화 할 수 있습니다 역할 .Isuserinrole AD 역할 멤버십을 확인하여 사용자를 확인하려는 경우 내용을 렌더링하기 전에 관련 그룹의 일부입니다.

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