2012-02-23 9 views
4

私はここから助けが必要です。だから私のシステムには2つの役割があります。管理者とユーザー私はログイン制御を使用してシステムにログインできるようにします。これら2つの役割を別のページにリダイレクトするにはどうすればよいですか?私は、メンバーシップとフォーム認証を使用しています。もしあなたが私に助けを与えることができたら、私は感謝します。ありがとうございました:)自分の役割に応じて他のページにリダイレクト

+0

歓迎はStackOverflowのために:) –

+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

あなたの答えswanneeありがとうございました:)今それを試してみます –

+0

クール、あなたのために働く場合、答えとして私の応答を確認してください。 – swannee

3

今すぐ入手しました。あなたがする必要がある最初のことは、コントロールのログインのプロパティでイベントに行く、loggedIn行でダブルクリック、それは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 
関連する問題