2014-02-26 2 views
0

특정 컨트롤러에 대한 액세스를 제한하기 위해 을 기반으로 ASP.NET MVC 4을 기반으로 필터를 작성하려고합니다.ASP.NET MVC 4에서 IAutorizationFilter 구현

웹 응용 프로그램의 최종 사용자가 자신의 액세스가 허용 된 적절한 권한을 가지고 있다면 다른 경우에는 그렇지 않다는 생각입니다.

그래서 나는 final에서 User.Identity.Name을 기반으로 BOOL 권한을 얻은 다음 그가 맞는지 여부를 확인합니다.

BOOL 권한이있는 필터를 구현해야합니까, 아니면 하나의 필터 만 사용할 수 있습니까? 이것을 구현하려면 어떻게해야합니까? 어떤 멋진 아이디어라도주세요?

답변

0

아니요, 그렇게하지 않아도됩니다. 각 사용자의 권한을 결정하는 방법은 OnAuthorization에서 수행하거나 별도의 정적 방법으로 리팩터링하여 OnAuthorization 내에서 호출 할 수 있습니다. 당신도 Action 방법에 대한 또는 Controller에 대한 사용자 지정 권한 부여 특성을 사용하여 사용하는 경우

그러나, 당신은 Create 권한을 가진 사용자 만이 controller에 액세스 할 수 있습니다 Read 권한으로 Action 또는 사용자가 액세스 할 수있는 말을 할 수 있어야한다. 이 블로그 게시물을보십시오.

http://codeutil.wordpress.com/2013/05/14/forms-authentication-in-asp-net-mvc-4/#mvc-implement-custom-authorization-filter

당신은 당신이

[HttpPost] 
[CustomAuthorize(AllowRead = false, AllowWrite = true)] 
public ActionResult Create(Model model) 
{ 
    //your code 
} 
,536,913을 다음과 같이 권한 부여 특성을 사용

public bool AllowRead {get;set;} 
public bool AllowWrite {get;set;} 

를 사용할 수

public int StartTime { get; set; } 
public int EndTime { get; set; } 

대신에 정의 된 두 개의 변수가 알 위의

은이를 수행하는 한 가지 방법 일뿐입니다. 또 다른 방법은 enum 플래그를 사용하는 것입니다. 이 대답을 한번보세요.

How could I use my own database table for MVC 4 user control (and authorizing with boolean fields in role table)?

+0

답장을 보내 주셔서 감사합니다. 권한은 멤버십 테이블과 관련된 테이블 (클래스)에 저장됩니다. 그래서, 현재 로그인 한 사용자의 권한을 얻고 컨트롤러 동작을 실행할 권한이 있는지 확인하려고합니다. 권한은 모든 컨트롤러 메소드를 이용할 수있게합니다. – ABCmo

관련 문제