2009-11-15 5 views
2

우리는 새로운 MVC 프로젝트를 착수하고 있으며 인증 및 권한 부여 문제를 해결하기 위해 노력하고 있습니다 (액션 필터를 사용하는 것이 바람직 함). 우리의 역할은 광고 그룹 (우리를 위해 이미 결정됨)으로 나타날 것이므로 우리가 정말로해야하는 것은 사용자가있는 그룹을 읽는 것입니다 (신원에서). 당신이 그룹 중 하나에 있다면, 당신은 인증 된 것으로 간주되고 적절한 권한 부여는 액션/컨트롤러에 의존합니다 (특정 역할은 특정 일을 할 수 있습니다). 사용자 지정 멤버쉽 공급자를 사용하는 데 실질적인 이점이 있습니까? 전 세계적으로 인증 할 수있는 방법이 있습니까? (통합 보안을 사용하고 있으므로 로그인이 없으며 인증을받지 않은 경우 페이지에 액세스 할 수 없으므로 모든 태그에 [인증] 태그를 넣지 않아도됩니다) 제어 장치? 누군가가 링크를 가질 수있는 구현 예가 있습니까?ASP.NET MVC 프로젝트 인증/권한 부여

답변

4

사용자 지정 멤버십 공급자를 사용하면 실질적인 이점이 있습니까?

예. 기본 멤브레인 공급자가 대부분의 경우에 적합하지 않음을 발견했습니다.
정직하게 말하면, 당신의 커스텀 커브를 롤링하는 것보다 훨씬 간단하게 될 고통이 있습니다.
이것은 신원을 사용해서는 안되며, 신원을 연결하고 계속 사용하면 안된다는 것을 의미하지는 않습니다.

전 세계적으로 수 인증 할 수있는 방법 '(우리가 통합 보안을 사용하고 있기 때문에이 더 로그인 은 없다 당신이 정식하지 않는 경우는 모든 페이지에 액세스 할 수 없습니다) 우리가 같으면 거기 컨트롤러에 [Authenticate] 태그를 넣으려면 이 필요합니까?

나에게 가장 좋은 방법은 [인증]을 기본 컨트롤러에 적용하고 여기에서 기본 설정을 상속받는 것입니다.
물론 사용자 정의 HttpHandler/Module을 작성하거나 ControllerFactory에 연결할 수 있습니다.
하지만 그만한 가치는 없습니다.

다른 컨트롤러는 다른 역할을 필요로하기 때문에이 경우에는 각각에 대해 [Authenticate (Roles = "a, b, c, d")]를 적용해야합니다.

구현 예가 있습니까 누군가가 링크를 가지고있을 수 있습니까?

NDA에서 준비된 예제를 게시 할 수 없습니다. 그러나 당신이 말한 것에서는 당신이해야 할 일이 거의 없습니다. [Authenticate] 속성을 적용하면됩니다.

0

적절한 승인은 작업/컨트롤러 (특정 역할은 특정 작업을 수행 할 수 있음)에 따라 다릅니다.

두 번째는 기본 제어기의 드미트리의 아이디어입니다. AD에 대해 사용자를 인증하면 그룹 이름을 쿠키에 넣은 다음 기본 컨트롤러에서 읽을 수 있습니다. XML 파일 또는 다른 것으로 그룹 - 역할 맵핑을 넣을 수 있습니다. 기본 컨트롤러에서 OnActionExecuting 메서드를 재정의하고 요청한 작업 및 컨트롤러가 무엇인지 파악한 다음 캐시 된 XML 역할 매핑을 확인하고 사용자가 허용되는지 확인합니다. 그런 다음 방법을 진행 시키십시오. 그렇지 않으면, 어딘가에 방향을 재 지정합니다.

관련 문제