2011-04-23 2 views
0

MVC 웹 응용 프로그램에서 보안 시스템을 구현하는 데 사용할 수있는 디자인 접근 방식은 무엇입니까?MVC 응용 프로그램의 보안 시스템 디자인

패턴, 모범 사례가있을 수 있습니다. 일부 인기있는 언어, 예 : Java, .Net 또는 무엇이든지? 모델이나 컨트롤러 또는 그 사이에 어떤 레벨을 구현하는 것이 더 낫습니까?

원시적 인 접근 방식은 구현에 따라 여러 컨트롤러 또는 모델간에 보안 검사가 확산되고 코드 레벨이 섞이는 결과를 낳았습니다. 그러나 더 나은 방법으로 보안을 어떤 방식으로 설계하는지는 분명하지 않습니다.

MVC 애플리케이션이 있습니다. 나는 유연한 접근 권한 시스템이 필요합니다. 카테고리와 카테고리의 엔티티가 있습니다. 일부 사용자는 범주 집합, 다른 사용자 - 다른 범주에서 편집 /보기/추가/제거 할 수 있습니다. 또한 사용자 역할에 따라 일부 모델 필드를 DB에서 검색하지 않아야합니다 (null을 반환해야 함) 관리자는 다른 액세스 권한을 할당 할 수 있어야합니다.

답변

1

.Net의 멤버 선박 공급자를 사용해야합니다. 기본적으로 새 MVC 3 인터넷 응용 프로그램 Visual Studio 프로젝트 템플릿은 기본 로그인 코드를 제공합니다. Visual Studio 내에서 '사이트 관리'버튼을 클릭하면 사용자와 역할을 관리 할 수있는 웹 인터페이스가 제공됩니다. 사용자/역할을 만든 다음 컨트롤러 클래스 정의 또는 메서드 정의에서 [Authorize (Roles = "Admin, Users")]를 정의하십시오. 한 곳으로 매핑 할 수있는 URL이 여러 개 있기 때문에 Asp.Net Web Form 응용 프로그램 에서처럼 URL 액세스를 정의하지 마십시오. 대신 Authorize 속성을 사용하십시오. (다시 게시 즉, 어떤 방법)

을 또한 What features do I need to have before I open an ASP.Net app onto the internet?

당신이 당신의 의견에 Html.AntoForgeryToken를 사용 있는지 확인하고 [HttpPost] 컨트롤러 방법에 대한 [ValidateAntiForgeryToken] :

또한 여기에 내 대답을 확인

관련 문제