2013-02-22 2 views
0

응용 프로그램을 사용할 많은 사용자가있는 프로젝트를 수행해야합니다. 사용자는 사용자, 경영진 또는 관리자에게 속할 수 있습니다. 각 사용자 그룹은 고유 한 권한을가집니다. 모든 데이터는 데이터베이스에 저장됩니다.클래스 디자인에서 권한 관리 구현

이제 클래스 디자인을하고 있는데 클래스 자체를 설계해야하는지, 아니면 사용자 그룹을 감시하고 데이터베이스의 CRUD 연산에 대한 액세스를 거부해야하는지 알 수 없습니다.

사용자 또는 그룹을 나타내는 권한을 구현하는 좋은 방법은 무엇입니까?

+0

사용자를 어떻게 인증 할 것이며 보안 수준은 필요한가요? SQL Server의 기본 제공 보안은 더 큰 자신감을 제공하지만 앱이 지원하지 않으면 선택 사항이 달라집니다. – chrisb

+0

나는 일종의 예방 보안을 사용하려고 계획했습니다. 사용자가 액세스 할 수없는 버튼을 볼 수 없습니다. 예를 들어, 관리자는 사용자를 추가 할 수있는 제어 권한을 가지며 임원과 사용자는 사용자를 추가하지 않습니다. 내가 계획 한 것은 양식이로드 될 때 앞에 앉아있는 사용자의 권한을 확인한 다음 사용자 그룹에 따라 양식을 생성한다는 것입니다. – LeonidasFett

+0

확실히, 데이터베이스를 강화하기위한 실질적인 요구 사항을 제외하고는 심층적 인 방어에 대한 토론을 떠나기 때문에 어떤 프레임 워크와도 함께 할 수 있습니다. 사용 권한 부여 동작을 사용하고 매우 열심히 노력하고 있습니다. 그것을 모호하게하지 않기 위해 - 그들은 일반적으로 잘 이해하고 있고 어쨌든 더 잘 문서화 될 것입니다 :) – chrisb

답변

0

비즈니스 요구 사항을 충족시키는 디자인 클래스. 나는 사용자 화면을 구성 할 수있는 "UI facing"클래스를 상상한다. 데이터베이스 끝에 "권리가있는 사용자"또는 "사용자에게 권한이 있는지"나는 알지 못합니다. 귀하의 비즈니스 모델을 디자인하십시오. 당연히 DB에서 정보에 매핑하기 위해 무딘 코드가 필요합니다.

자체 디자인 클래스 등의 권리 또는 ...

해당 클래스가 얼마나 복잡한에 따라 다릅니다. ... UserGroup 클래스에는 복잡한 개체 또는 단순한 열거 형 컬렉션 인 List 권한이 있습니다. 귀하의 모든 비즈니스 모델 요구에 "밥은 어떤 권리가 있습니까?" 열거 형 목록은 나에게 좋게 들린다. 열거 형의 대안은 Right 기본 클래스이며 모든 오른쪽에 서브 클래 싱됩니다. IMHO 같은 사소한 사용을 위해 너무 많은 작업.

어떤 방법으로 가고 있는지 확실하지 않은 경우 권한 목록을 캡슐화하는 별도의 클래스를 만듭니다. 열거 형에서 Right 클래스, 네 번째 및 네 번째 클래스로 이동하는 경우 응용 프로그램의 나머지 부분에 노출되는 "API"는 변경되지 않습니다.