Si tienes una aplicación usando Membership con varios Roles y necesitas redirigir al usuario a diferentes páginas de acuerdo al rol en el que se encuentra utiliza el siguiente código.

Este es tu control Login en tu página:

  1. <asp:Login ID="Acceso" runat="server" BorderPadding="8"  
  2.     DisplayRememberMe="False"
  3.     FailureText="Datos inválidos, por favor inténtelo de nuevo."
  4.     LoginButtonText="Entrar" LoginButtonType="Button"
  5.     PasswordLabelText="Contraseña:" TitleText=""
  6.     UserNameLabelText="Nombre de usuario:"
  7.     DestinationPageUrl="">
  8.     <ValidatorTextStyle CssClass="Validador" ForeColor="" />
  9.     <FailureTextStyle CssClass="Validador" ForeColor="" />
  10.     <TitleTextStyle CssClass="Titulo" Font-Bold="True" HorizontalAlign="Left" />
  11.     <TextBoxStyle Font-Bold="False" />
  12.     <LoginButtonStyle Font-Bold="False" />
  13.     <LabelStyle Font-Bold="True" HorizontalAlign="Left" />
  14.     <CheckBoxStyle HorizontalAlign="Right" />
  15. </asp:Login>

Este es el código para realizar la redirección:

  1. Protected Sub Acceso_LoggedIn(ByVal sender As Object, ByVal e As System.EventArgs) Handles Acceso.LoggedIn
  2.     Dim ElLogin As System.Web.UI.WebControls.Login
  3.     ElLogin = CType(sender, System.Web.UI.WebControls.Login)
  4.     If Roles.IsUserInRole(ElLogin.UserName, "Administrador") = True Then
  5.         Response.Redirect("~/Administrador/Default.aspx")
  6.     Else
  7.         If Roles.IsUserInRole(ElLogin.UserName, "UsuarioRegular") = True Then
  8.             Response.Redirect("~/Usuario/Default.aspx")
  9.         End If
  10.     End If
  11. End Sub

Importante: Es muy probable que tu página de inicio de sesión se llame “Login.aspx”, si haces eso, entonces la clase de la página llevará el nombre de “Login”, y esto se confunde con la clase del control “Login”. Si no funciona el código anterior quizás tengas este problema, solamente renombra tu página (lo más importante es renombrar su clase) a cualquier otra cosa, por ejemplo: PaginaLogin o Default.

3 comentarios sobre “Cómo redirigir a un usuario a diferentes páginas de acuerdo a su Rol

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *


uno + = 4