2012-02-23 4 views
4

나는 여기서부터 도움이 필요합니다. 따라서 제 시스템에는 두 가지 역할이 있습니다. 관리자 및 사용자. 로그인 제어를 사용하여 시스템에 로그인 할 수있게합니다. 이 두 역할을 다른 페이지로 리디렉션하려면 어떻게해야합니까? 회원 가입 및 양식 인증을 사용하고 있습니다. 네가 나에게 도움이된다면 고맙겠습니다. 고마워요 :)역할에 따라 다른 페이지로 리디렉션

+0

환영에 유래하는 :) –

+0

'LoginView '컨트롤은이 작업하고 코드를 작성할 필요없이 할 수 있습니다. – Mubarek

+0

로그인보기는 일반적으로 로그인 상태 및/또는 역할에 따라 동일한 페이지에서 다른보기를 표시합니다. 작업이 다른 페이지로 이동하는 자세가있는 질문과 약간 다릅니다. – swannee

답변

4

핸들은 "OnLoggedIn"이벤트를 제어합니다. 이 경우 현재 사용자 역할을 결정하십시오. 다음과 같이 그가 ("LoginUser"는 아래에 로그인 컨트롤을 나타냅니다) 수행 할 수 있습니다

string[] userRole = Roles.GetRolesForUser(LoginUser.UserName); 

http://msdn.microsoft.com/en-us/library/system.web.security.roleprincipal.getroles%28v=vs.100%29.aspx

그리고 올바른 목적지로 보낼 수있는 역할에 따라 Response.Redirect를 사용합니다.

+0

답변 해 주셔서 감사합니다 :) 지금 시도해 보겠습니다. –

+0

멋진 답변입니다. 답장으로 답장을 확인해주세요. – swannee

3

지금 받으 셨습니다. 당신이해야 할 첫 번째 일은 로그인 컨트롤의 속성에서 이벤트로 이동합니다, 로그인 된 행에서 두 번 클릭하면 cs 페이지로 이동합니다. 그리고, 무엇 U이해야 할 것은

protected void Login1_LoggedIn(object sender, EventArgs e) 
{ 
    { 
      if (Roles.IsUserInRole(Login1.UserName, "Admin")) 
      Response.Redirect("~/Admin/Default.aspx"); 
     else if (Roles.IsUserInRole(Login1.UserName, "User")) 
      Response.Redirect("~/User/Default.aspx"); 
    } 
} 

그런 다음

1

이 기반으로 각각의 페이지로 사용자를 리디렉션합니다 u는 사용자가 로그인 후 리디렉션 할 URL로 로그인 컨트롤의 대상 URL을 설정하는 것을 잊지 말아입니다 그들의 역할.

protected void Login1_Authenticate(object sender, AuthenticateEventArgs e) 
    { 
     if (Membership.ValidateUser(Login1.UserName, Login1.Password)) 
     { 
      if (Roles.IsUserInRole(Login1.UserName, "Admin")) 
      { 
       Response.Redirect("~/Admin/Default.aspx"); 
      } 
      else if (Roles.IsUserInRole(Login1.UserName, "User")) 
      { 
       Response.Redirect("~/User/Default.aspx"); 
      }    
     } 
    } 

감사합니다.

1

이 코드는 작동합니다

Try 

    If Membership.ValidateUser(Login1.UserName, Login1.Password) 
    Then 
     If Roles.IsUserInRole(Login1.UserName, "administrasi") 
     Then 
      Response.Redirect("~/administrasi/Default.aspx") 
      ElseIf Roles.IsUserInRole(Login1.UserName, "client") 
     Then 
      Response.Redirect("~/client/Default.aspx") 
     Else 
      Response.Redirect("~/user/Default.aspx") 
     End If 
    End If 
Catch ex As Exception 

End Try 
관련 문제