2009-10-27 1 views
1

ASP.NET MVC 미리보기 2로 개발 된 웹 응용 프로그램의 인프라를 학습 경험으로 설계하기 시작했습니다. 인증을 위해 사용하려는 자체 도메인 모델과 데이터베이스 스키마가 있습니다.Asp.net Membership & Authentication

변형 된 역할 기반 인증을 수행하려고합니다. 그러나, 나는 이것을 수행하는 방법에 대해 내 머리를 감싸는 것처럼 보일 수 없다.

"블로그"에 대한 액세스 권한이있는 사용자가 있습니다. 사용자가 예상되는 역할을하고 있지만 위의 "블로그"에 속한 사용자는 어디에서 권한을 부여 할 수 있습니까?

사용자 지정 역할 공급자가 필요합니까, 아니면 해당 역할에 대한 인증 특성에서 논리를 수행해야합니까? 컨트롤러 동작; 인증 된 사용자의 BlogId를 쿼리하고 여기에서 인증 로직을 수행합니다. 나는 현재이 일을하기 위해 어떤 방법으로 만들어 졌는지 알지 못한다.

가능하면이 기능을 제공하는 사용자 지정 역할 공급자 또는 authorize 특성의 예가 좋습니다.

감사합니다

답변

1

당신이하고자하는 것은 역할과 소유권 검사 모두가 할 수있는 능력이처럼 소리. 예를 들어 사용자는 "작성자"역할을 할 수 있지만 블로그 항목을 실제로 만들거나 업데이트하려면 특정 블로그와 소유권 관계가 있어야합니다. 소유권을 확인하는 방법을 알고있는 커스텀 권한 부여 속성과 함께 표준 롤 공급자를 사용하면 (기본적으로 액션 엔티티와 DB의 현재 사용자 항목 간의 특정 외래 키 관계) 접근하는 것이 합리적입니다 이.

my answer에서 similar question으로 몇 가지 샘플 코드를 찾을 수 있습니다.

+0

빠른 응답을 보내 주셔서 감사합니다. authorize 속성을 사용하여 출력 캐싱과 충돌합니다. 나는 그것에 대해 어딘가에서 읽는 것을 기억한다. –

+0

http://www.codeplex.com/aspnet의 AuthorizeAttribute 소스를보고 캐싱 문제를 어떻게 처리하는지보십시오. 내 코드 샘플에서는 SetCachePolicy()를 호출하는 것을 볼 수 있습니다. SetCachePolicy()는 기본적으로 AuthorizeAttribute와 비슷한 방식으로이 문제를 해결하는 코드를 구현합니다. – tvanfosson

+0

이것이 정확히 필요한 것 같습니다. 고맙습니다. –