2008-10-15 4 views
2

좋습니다. 아키텍처 지침이 필요합니다. 팀에서 빌드중인 새로운 기능을 사용하여 특정 결정을 다시 캐스팅 할 기회를 얻었습니다. 그래서 생각 :-) 물론 우리는 변화하지 않는 특정 것들이 있으므로 솔루션은이 모델에 적합해야합니다. 즉, 사용자가 시스템에서 작업을 수행 할 수 있도록 웹 서비스를 사용하는 ASP.NET 응용 프로그램이 있습니다.확장 가능/재사용 권한 부여 모델

많은 시스템에서와 같이 다른 사용자가 다른 기능에 액세스해야하기 때문에 문제가 발생합니다. 일부 역할은 Y 버튼에 액세스 할 수 있고 다른 사용자는 Y 및 B 버튼에 액세스 할 수 있고 다른 사용자는 B에 액세스 할 수 있습니다. 대부분이 시간을 볼 때 개발자는 if 문을 mish-mosh 처리해야합니다. UI 상태. 권한이 부여 된 사용자 만 특정 메서드를 호출 할 수 있도록 승인 로직을 GUI에 넣는 것 외에도 웹 서비스 (아약스를 통해 호출 됨)에 넣어야하기 때문에이 옵션을 선택하지 않은 채로 남겨 두는 것이 바람직하지 않습니다. .

제 질문은 GUI와 웹 코드 및 웹에서 재사용 할 수있는 특정 역할을 확인하는 임의의 ad-hoc if 문을 여기저기서 어떻게 줄일 수 있습니까? 서비스 코드.

이것은 웹 폼을 사용하는 ASP.NET 웹 응용 프로그램이며 AJAX 기능을 위해서는 Script#입니다. 스크립트가 응답을하지 않게합니다. asp.net ajax와 근본적으로 다른 것은 아닙니다 :-)

답변

1

는 "클레임 기반"로 푸시가 WCF과 함께 제공되는 것 같은 권한 부여.

Zermatt 개발자는 서버와 클라이언트에서 클레임 기반 애플리케이션을 구축 할 수 있도록 도와드립니다 마이크로 소프트 클래스 라이브러리의 코드 명이다. Active Directory는 응용 프로그램이 자신뿐만 아니라 다른 업계 표준 서버와 동시에에 대해 권한을 부여 할 수있을 것 STS 중 하나 ...

1

코드 완성 (411 페이지) 스티브 맥코넬 (Steve McConnell)은 빌 게이츠가 다음과 같이 조언합니다 마이크로 소프트 광고 방송에서의 취침 이야기).

"적절한 상황에서 테이블 기반 코드는 복잡한 논리보다 간단하고 수정하기 쉽고 효율적입니다."

"테이블을 사용하여 코드에서 동적으로 표현할 수있는 논리를 설명 할 수 있습니다."

쉽게 사용자의 모델링 아이디어 같이 (새 "사용자"를 추가 할 수있는 테이블을 기반 접근 방식을 사용하여

"테이블 중심의 접근 방식은 이전 방식 [기계적 객체 지향 설계]보다 더 경제적입니다"/에이전트와 함께 행동). 많은 "if"를 피하는 좋은 방법입니다. 그리고 나는 당신의 상황과 같은 상황을 위해 이전에 그것을 사용했고 코드를 멋지고 깔끔하게 유지했습니다. 기존의 그룹, 역할 또는 작동 수준의 권한에서 이동

+0

음, 사용자가 될 것이며, 그의 권한은 확실히 테이블을 기반으로 될 가능성이 .. 각 뷰의 구성 (즉, 어떤 동작이 어떤 사용 권한/역할에 매핑되는지)이 테이블 기반 인지도 제안 하시겠습니까? –