2012-07-31 3 views
2

ASP.NET 프로젝트에서 FormsAuthenticationASP.NET Memberships and Roles을 사용하고 있습니다. 인증 된 사용자 만 볼 수 있고 액세스 할 수있는 aspx 파일이 있습니다. 다음 두 가지 방법 중 하나를 사용하여이 작업을 수행 할 수 있다고 생각합니다.FormsAuthentication을 사용하는 ASP.NET의 인증

  1. web.config 파일 구성. 'admin'및 'members'역할을 가진 사용자가 해당 apsx 파일에 액세스 할 수있게하고 다른 모든 익명 사용자를 거부합니다. 그 apsx 파일의를 Page_Load 이벤트에서

  2. , 그냥 curent 사용자가 인증 여부를 확인 아니면이 두 가지 방법이 apsx 파일에 대한 동등인지 아닌지 궁금 HttpContext.Current.User.Identity.IsAuthenticated

를 사용하지.

답변

1

이들은 서로 동일하지 않습니다. 방법 1.은 "admin"및 "members"역할에만 액세스 권한을 부여합니다. 다른 역할을 추가하면 액세스 할 수 없습니다. 방법 2를 사용하면 로그인 한 모든 사용자가 데이터에 액세스 할 수 있습니다.

내가 선호하는 방법은 디렉토리에 어떤 역할이 액세스해야하는지에 따라 aspx 파일을 구성하는 것입니다. 그런 다음 web.config의 디렉토리에 대한 액세스를 구성합니다.

+0

방법 2의 경우 HttpContext.Current.User.IsInRole을 사용하여 'admin'또는 'members'역할이 있는지 여부를 확인할 수 있습니다. 이제 방법 1과 동일합니까? –

+0

예, 'HttpContext.Current.User.IsInRole'을 검사하면 해당 메소드가 동일하게됩니다. –

0

안녕하세요해야합니다위한 인증 및 권한 부여 사이에 뚜렷한

  1. "HttpContext.Current.User.Identity.IsAuthenticated"입니다 :위한 인증

  2. "허용 역할 '관리자'와 사용자와 '회원' "인증 : 인증 후 인증을 실행합니다.

당신은이 기사를 읽을 수 있습니다 : http://www.duke.edu/~rob/kerberos/authvauth.html

인증은 시스템이 사용자를 안전하게 식별 할 수있는 메커니즘입니다. 인증 시스템은 질문에 답변을 제공 :

Who is the user? 
Is the user really who he/she represents himself to be? 

인증 시스템은 질문에 대한 답변을 제공합니다

다른 사람이 언급으로
Is user X authorized to access resource R? 
Is user X authorized to perform operation P? 
Is user X authorized to perform operation P on resource R? 
1

,이 동일하지 않습니다. 그러나 "2." 역할을 확인하기 위해 표준 방식으로 쉽게 처리 할 수있는 것을 처리하는 사용자 정의 코드를 도입 할 때이 방법이 더 나쁩니다.

또한 별도의 폴더를 만드는 또 다른 접근 방식을 고려, 거기 제한 페이지를 넣고 보조 web.config을 만들 수는 포함합니다 :

... 
<system.web> 
    <authorization> 
     <allow roles="admin,members" /> 
     <deny users="*" /> 
    </authorization> 
</system.web> 

이 방법을 사용하면 폴더에있는 모든 리소스에 대한 권한을 필요로 , 페이지, 스타일, 이미지.

관련 문제