2013-05-09 2 views
0

현재 SQL 및 VB.NET을 기반으로 설계된 프로젝트에서 작업 중입니다. 다음과 같은 아이디어 : 사용자에게 다른 권한이 있습니다. administraotr은 각 사용자에게 특정 권한을 부여합니다. 아이디어는 다음과 같은 예시 :사용자의 구현 권한 SQL 및 VB.NET

enter image description here

예를 들어, 사용자 A가 다음과 같은 권한을 얻을 수 있습니다 :

그는 기존 입찰을 수정, 새로운 입찰을 추가 신규 고객을 추가 할 수 있습니다.

사용자 B는 다음과 같은 권한이 :

그는 새로운 직원을 기존 입찰을보고, 추가 할 수 있습니다, ... 등등.

SQL에서 그것을 구현하고 VB.NET이 방법의 아이디어 : 다음과 같은 필드 권한라는 새 테이블 만들기

:

사용자 ID (사용자 ID에 대한 외래 키), 각 권한이 있으면 하나의 필드가 있으므로 12 개의 필드가 있습니다.

이제 VB.NET에는 12 개의 버튼이 추가됩니다 (예 : 새 입찰 항목 추가, 부드러운 입찰 ...). 각 버튼은 필드의 값에 따라 활성화 및 비활성화됩니다 (필드 = 1이면 버튼이 활성화됩니다). 여기

은 예입니다 :이 경우

enter image description here

enter image description here

이 사용자에 대한 레드 라인과 버튼이 활성화되고 나머지는 자신의 권한에 따라, 사용할 수 없게됩니다 .

이 방법은 간단하며 구현하기에 전문적이지 않습니다.

개선 방법에 대한 권장 사항이 필요합니다.

감사합니다.

답변

0

예를 들어 외부 인증 프레임 워크를 사용하고 싶습니다. Microsoft의 클레임 기반 권한 또는 더 나은 XACML - 확장 가능한 액세스 제어 마크 업 언어. 당신이 외부화 된 권한을 사용하면

, 당신은 (모든 경우) 코드를 작성할 필요는 다음과 같습니다

"나는 버튼 foo는 사용할 수 있습니까?". 그것은 외부 인증 엔진으로 보내는 질문입니다. "XACML에서 실행되는"엔진을 사용하는 경우 다음을 쉽게 정의 할 수있는 정책 기반의 속성 기반 액세스 제어가 제공됩니다.

  • 고객에게 할당 된 사용자는 해당 고객에 대해 입찰자를 추가 할 수 있습니다

제가 작업하는 공급 업체 인 Axiomatics과 같은 오픈 소스 솔루션이나 공급 업체 솔루션을 확인하십시오. 또한 XACML에서 사용 가능한 리소스를 확인하십시오. http://en.wikipedia.org/wiki/XACML 또는 YouTube의 XACML 동영상

+0

또한 Microsoft의 권한 부여 관리자 (http://msdn.microsoft.com/en-us/library/bb897401.aspx)를 사용할 수도 있습니다. –