2009-06-03 6 views
0

ASP.Net MVC에서 작업을 기록하기 위해 응용 프로그램을 빌드하고 있습니다.올바른 사용자에게 ASP.NET MVC의 컨트롤러 보안

사용자는 자신의 작업 만 삭제할 수 있습니다. 다른 사용자가 속한 다른 사용자의 작업을 삭제하는 [id] 매개 변수를 사용하여 삭제 된 컨트롤러 URL을 입력하는 것에서 다른 로그인 한 사용자를 막는 표준 방법이 있습니까?

예 :

사용자 A가 사용자 A가 작업을 볼 때,/작업에 대한 링크가 (13)의 ID와 작업이 있습니다// (13)가 작업 기록을 삭제합니다. 사용자 B는 작업 13을보고 주소 표시 줄에/tasks/delete/13을 입력하기로 결정하여 사용자 A의 작업을 삭제할 수 있습니다.

컨트롤러 내에서 코드를 직접 작성해야합니까? 그렇지 않으면 일반적으로 처리되는 표준 방식이 있습니까?

감사합니다.

답변

1

NerdDinner 응용 프로그램은 저녁 식사 컨트롤러에 그러한 예가 있습니다.

http://nerddinner.codeplex.com/

이 작업을 수행하는 방법에 대한 지침은 여기에 있습니다 :
http://nerddinnerbook.s3.amazonaws.com/Part9.htm

당신은 제목이 표시 될 때까지

이동에 대한 중간 페이지 아래 다음 User.Identity.Name 속성을 사용 만들기 저녁 식사저녁 식사 편집시 User.Identity.Name 속성 사용

1

ASP.NET MVC의 보안에 관해서는 인증 및 권한 부여가 있습니다.

인증은 사용자의 신원을 확인하는 프로세스로, 일반적으로 데이터베이스에 대한 사용자 이름과 암호를 확인한 다음 해당 사용자에게 일종의 사용자 ID를 할당하는 과정이 포함됩니다.

권한 부여 (RBAC) 시스템 리소스에 대한 액세스를 제한하는 프로세스입니다 종종 역할을 통해 이루어집니다. 그러나 역할은 종종 필요하시면있는 소유권을 포함하지 않습니다. 귀하의 경우 당신이 필요합니다에서

작업 등에 소유권 검사를 수행하기 위해 자신의 코드를 작성합니다 :.

if (!task.IsOwnedBy(userID)) 
{ 
    throw new HttpException ((int)HttpStatusCode.Unauthorized, 
          "You are not authorized."); 
} 

내가 내 비즈니스 계층에이를 통합하는거야 방법을 결정하기 위해 여기에 비슷한 질문 How do you weave Authentication, Roles and Security into your DDD? 물어 아직

관련 문제