2012-04-04 4 views
0

현재 응용 프로그램에서 역할과 규칙을 사용하여 보안이 작동하지만 사용자가 특정 역할에 속해 있는지 여부에 따라 웹 링크를 숨길 수 있는지 궁금합니다.역할이 지정되지 않은 사용자의 웹 링크를 숨기기

현재 사용자가 'admin'역할 또는 'user'역할에 속해 있습니다. 내 응용 프로그램의 폴더에 규칙이 설정되었으므로 사용자가 그룹 중 하나에 속하면 웹 링크를 클릭하여 페이지로 이동합니다. 그러나 새로운 사용자가 아무런 역할에도 속하지 않으면 웹 링크를 클릭하여 홈페이지로 리디렉션합니다 (아래 코드 참조). 이것은 훌륭하지만, 사용자가 특정 역할에 속해 있지 않으면 웹 링크를 숨길 수 있다는 것이 궁금합니다. 또한 사용자가 역할에 속하지 않은 경우 페이지에 리디렉션되어 할당 된 역할이 필요하다고 말할 수 있습니까? user.identity이 속하지 않는 경우 사용자가 인증 된 경우

<authentication mode="Forms"> 
    <forms loginUrl="~/Homepage1.aspx" timeout="2880" /> 
</authentication> 

내가 과거에이 검사를 현재 응용 프로그램이 사용 해달라고하지만, 나는이 문 만약 내가 비슷한을 사용할 수 있는지 궁금 'user'또는 'admin'역할로 변경 한 다음 페이지로 리디렉션하고 오류를 표시 하시겠습니까?

If User.Identity.IsAuthenticated = True Then 

     Dim myUser As MembershipUser 
     Dim objUser As Object 

     myUser = Membership.GetUser(User.Identity.Name) 
     objUser = myUser.ProviderUserKey 

     Session("ID") = objUser 

    Else 

     MsgBox("You are not entitled to view this page", MsgBoxStyle.Critical, "Warning") 
     Response.Redirect("~/NoAccess.aspx") 

    End If 

답변

0

네, 당신은 User.IsInRole(role as String)를 사용할 수 있습니다

<% If User.IsInRole("admin") Then %> 

<a href="admin-tools.aspx">Admin Tools</a> 

<% End If %> 

당신은 아이디어를 얻을. 역할에 관계없이 링크를 표시하거나 숨겨야하는 모든 시나리오에 맞출 수 있습니다.

역할 관리에 대한 자세한 내용은 here을 참조하십시오.

+0

나는 사용자를 선언해야한다고 가정합니다. 멤버십 사용자로서 희미한 사용자입니까? 또는 역할에 대한 특정 선언이 있습니까? – Blob

+0

'User'가 내장되어 있습니다. 그것은 현재 로그인 한 사용자의'System.Security.Principal.IPrincipal'입니다. –

+0

역할 관리를 읽는 방법과 작동 방식에 대한 답변을 추가 한 링크를 읽어 보시기 바랍니다. –

관련 문제