根据角色重定向到其他页面

时间:2012-02-23 02:58:55

标签: asp.net asp.net-membership login-control

我需要你们这里的帮助。所以,在我的系统上,有两个角色。管理员和用户。我使用登录控制使他们能够登录系统。如何将这两个角色重定向到不同的页面?我正在使用会员资格和表格认证。如果你能给我一些帮助,我将不胜感激。谢谢:))

4 个答案:

答案 0 :(得分:4)

处理Login控件“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将它们发送到正确的目的地。

答案 1 :(得分:3)

我现在就明白了。您需要做的第一件事是,在控制中登录的属性转到事件,双击在loggedIn行,它将指向您在cs页面。然后,你需要做的是

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");
    }
}

然后不要忘记将登录控件的目标网址设置为您希望用户在登录后重定向的网址

答案 2 :(得分:1)

这会根据用户的角色将用户重定向到相应的页面。

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");
            }               
        }
    }

感谢。

答案 3 :(得分: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