2008-10-15 5 views
2

사용자가 '영역'을 통해 aspx 페이지에 액세스 할 수 있도록하려는 것입니다. 예를 들어, "재무"는 일부 사용자가 액세스 할 수없는 보안 영역입니다.페이지 수준 보안을 보장하는 가장 좋은 방법

결과에는 MVP, MVC, MVVM 등과 같은 패턴이 포함되어서는 안됩니다. 저는 가볍고 빠르게 할 수있는 것을 찾고 있습니다.

작업을 쉽게하기 위해 각 aspx 페이지에서 파생되는 기본 클래스가 있습니다. 사용자 ID가 주어진 보안 영역과 비교하여 각 페이지를 확인하는 가장 쉽고/좋은 방법은 무엇입니까?

감사합니다.

답변

3

나는 이것이 가장 좋은 방법인지 여부를 심각하게 의심스럽게 생각합니다. SecurePage라는 Page에서 파생 된 클래스가 있습니다. 나는 보통 페이지와 같은 객체와 그 페이지에 접근 할 수있는 그룹/사용자를 나열하는 데이터베이스에 교차 테이블을 가지고 있습니다. UserID 및 Object 이름 (이 경우 페이지 이름이지만 필드가 될 수있는 등)을 사용하여 저장 프로 시저를 실행하면 사용자 또는 사용자가 속한 그룹에 액세스 할 수 있는지 여부를 반환합니다. 페이지 init 중에 이것을 검사 할 수 있으며, 일치하지 않으면 response.redirect 또는 원하는 것을 수행 할 수 있습니다.

-1

.NET에 내장 된 폼 인증과 같은 보안 기능을 사용하지 않는 이유는 무엇입니까? 그건 매우 쉬워요.

+0

사실, 설정하기 쉽고 사용하기 쉽습니다. – stephenbayer

1

그래, 양식 또는 Windows 인증을 사용하십시오. 인증 된 사용자의 역할에 따라 사이트의 다른 부분을 쉽게 잠글 수 있습니다. locations을 사용합니다.

2

기본적으로 약간의 ACL 구현을 만들어야합니다. (액세스 제어 목록).

모든 역할 (Admin, Accountant, 뭐든, 게스트) 및 내용으로 acl_roles 테이블을 만듭니다. 그런 다음이 ID를 사용자 테이블과 연결하여 각 사용자에게 role_id가 있는지 확인하십시오.

그런 다음 acl_resources 테이블을 정의하십시오. 여기에서 앱에 "영역"을 추가하고 액세스 할 수있는 최소한의 역할을 추가하십시오.

각 스크립트의 시작 부분에 현재 사용자가 해당 영역에있을 수있는 충분한 권한이 있는지 확인하십시오.

자세한 내용은 여기에 있지만 기본 아이디어입니다.

관련 문제