Перенаправить на другую страницу в соответствии с их ролями - PullRequest
4 голосов
/ 23 февраля 2012

Мне нужна помощь от вас, ребята. Итак, в моей системе есть 2 роли. Админ и пользователи. Я использую контроль входа в систему, чтобы позволить им войти в систему. Как я могу заставить эти две роли перенаправить на другую страницу? Я использую членство и аутентификацию формы. Буду признателен, если вы поможете мне. Спасибо:)

Ответы [ 4 ]

4 голосов
/ 23 февраля 2012

Обрабатывать события входа в систему 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 в зависимости от роли, чтобы отправить их в правильный пункт назначения.

3 голосов
/ 24 февраля 2012

Я понял это прямо сейчас. Первое, что вам нужно сделать, это перейти к событию в свойствах входа в систему управления, двойной щелчок в строке 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");
    }
}

Тогда не забудьте установить целевой URL-адрес элемента управления для входа в URL, по которому вы хотите перенаправить пользователя после входа в систему

1 голос
/ 17 апреля 2016

Этот код работает:

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
1 голос
/ 04 июля 2014

Это перенаправит пользователя на соответствующие страницы в зависимости от его роли.

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

Спасибо.

...