2

저는 ASP.NET MVC를 처음 접했고 MVC 5의 기본 인증 방법을 사용하는 웹 사이트를 구축하려고합니다.ASP.NET MVC 5의 역할을 기반으로 한 개별 페이지 권한 부여

는 여기에 지금까지 한 일이다 :

  1. 가 AspNetUsers 테이블에있는 사용자의 수를 만들었습니다.
  2. AspNetRoles 테이블에 여러 역할을 만들었습니다.
  3. 역할 ID와 사용자 ID를 연결하여 AspNetUserRoles 테이블을 통해 사용자에게 역할을 할당했습니다.

    @if(User.IsInRole("Admin")) 
    { 
        <p>You are logged in as an admin.</p> 
    } else 
    { 
        <p>You are not logged in as an admin.</p> 
    }; 
    

    할이 OK인가 : 이제

는, 단지 관리자-역할을 가진 사용자에게 특정 콘텐츠를 표시 한 페이지를 설정하고, 그렇지 않으면 그것을 숨기기 위해,이 짓을했는지 , 또는이 나쁜가요? 나는 꽤 오랫동안 그것을 가지고 놀았으며 예상대로 작동합니다 (말할 수있는 한).

CustomAuthorizationAttributes를 만들고 컨트롤러의 ActionMethods에 할당 할 수 있다는 것을 알고 있지만이 구문에 대해 100 % 편안하지는 않습니다.

+0

매우 제한적일 것이며 여러 곳에서 할 경우 높은 코드 유지 보수가 필요합니다. 역할 이름에 상수 컬렉션을 만들어 최소한 이름을 바꾸거나 필요에 따라 나중에 쉽게 변경할 수 있도록하십시오. –

답변

1

구문에 만족하면 괜찮습니다.

그러나 권한 부여 특성을 사용하여보기 자체를 보호하는 것을 잊지 마십시오. 다음과 같이 기본값을 사용할 수 있습니다.

[Authorize(Roles = "Admin")] 
public ActionResult Register() 
{ 
... 
return View(); 
} 
+0

관리자는 아니지만 로그인 페이지로 사용자를 보냅니다. ? – Scopperloit

+0

예, 기본 설정이 있지만 원하는 방식으로 쉽게 변경할 수 있습니다. 기본 페이지에 연결된 고토 페이지 모음 기본 고토 페이지 ... –

+0

아하나. 감사 :) – Scopperloit

관련 문제