2013-12-15 5 views
0

MVC appliaction에서 실제로 기록 된 사용자의 권한을 검사하는 가장 좋은 방법은 무엇일까? 나는 전망과 관제사에게 이것을하고 싶다. 실제 로그인 한 사용자가 같은 역할에있는 경우MVC5 EF6 UserRights

사실은 내가 확인할 수 있습니다

User.IsInRole("roleName"); 

내가 권한 테이블이있다. 모든 권리에는 이름과 Enum 권리 표시가 포함됩니다.

예 확장 방법 :

public static class MyPrincipal 
    { 
     public static string HasRight(this IPrincipal principal, EnumRight right) 
     { 
      // THIS would be place where I would check if a user have right with specific enum. 
      return true/false; 
     } 
    } 

다음 뷰 또는 컨트롤러가이 같은를 사용할 수 있습니다 무엇을 달성하고자하는 IPrincipal 또는 IIdentity에 대한 확장 방법은 그래서 그런 사용자의 권한을 확인할 수있다 그 :

if(User.HasRight(EnumRight.AddDocuments)) 
{ 
    //DO SOMETHING 
} 
  1. 것이 좋습니다 또는 어떻게 유사한 메커니즘이 간단 할 수 있습니까? 어쩌면 독립적 인 정적 클래스가 확장이 아니겠습니까?

  2. 내 확장 메서드에서 실제 사용자 ID를 가져 와서 사용자에게 권한이 있는지 확인하는 데 필요한 데이터를 데이터베이스에서 가져 오는 방법은 무엇입니까?

답변

1

일반적으로 인증 필터를 구현하고이를 작업 방법에 적용합니다. 액션 필터를 구현하는 방법은 link입니다.

관련 문제