none
Logeo C# ASPX y Visual Studio 2015 RRS feed

  • Pregunta

  • Hola amigos,

    Alguien tiene un ejemplo de como realizar un logeo desde una pagina web y mostrar el usuario en la cabecera de la pagina maestra.

    Los datos:

    • Visual Studio 2015
    • Framework 4.6
    • Lenguaje C# ASPX 
    • SqlServer 2014

    Puedo hacer el logeo desde código bien pero no logro mostrar el usuario de sesión en la pagina maestra.


    Conocuica

    lunes, 17 de diciembre de 2018 20:34

Respuestas

  • Bueno, dado que estás usando el "RedirectFromLoginPage", entonces si no me equivoco este método ya te carga el "User.Identity", así que para mostrar el usuario en la "Master" basta con que pongas en el .master esto: <%=User.Identity.Name%>

    Ten presente que antes de que el usuario se "loguee", si la propia página de Login también "cuelga" de la misma Master, en ese punto el User.Identity todavía no estará establecido y probablemente dará un error. Si tienes el programa organizado de esa manera, entonces recuerda ponerle un "if" para que no intente mostrarlo antes de tiempo, bien sea en el propio <%...%> o mejor todavía en una propiedad en el code-behind, y luego muestras esa propiedad en el .master. O encapsúlalo todo en un .ascx que sirva para mostrar el usuario y pon el .ascx en la master. De hecho, eso es lo que hace la plantilla predeterminada; podrías incluso copiar el .ascx que te genera, que ya tiene dentro toda la lógica para mostrar el usuario solo cuando esté logado.

    martes, 18 de diciembre de 2018 6:51

Todas las respuestas

  • ¿Has probado a simplemente crear un proyecto nuevo desde Visual Studio usando la plantilla predeterminada? Te crea un sitio con logueo (si lo seleccionas al elegir la plantilla) y cuando te logas muestra el usuario en la esquina superior derecha de la página maestra. Puedes tomar ese proyecto como ejemplo.
    lunes, 17 de diciembre de 2018 20:46
  • mira:

    https://docs.microsoft.com/es-es/aspnet/mvc/overview/security/create-an-aspnet-mvc-5-web-app-with-email-confirmation-and-password-reset

    espero que sea de tu ayuda.

    lunes, 17 de diciembre de 2018 20:57
  • Es con MVC no estoy usando y con MVC si me sale sin problemas.

    Conocuica

    lunes, 17 de diciembre de 2018 22:33
  • Mira tengo este código pero no se donde colocar el mio.
            protected void LogIn(object sender, EventArgs e)
            {
                if (IsValid)
                {
                    // Validate the user password
                    var manager = new UserManager();
                    ApplicationUser user = manager.Find(UserName.Text, Password.Text);
    
                if (user != null)
                    {
                        IdentityHelper.SignIn(manager, user, RememberMe.Checked);
                        IdentityHelper.RedirectToReturnUrl(Request.QueryString["ReturnUrl"], Response);
                    }
                    else
                    {
                        FailureText.Text = "Invalid username or password.";
                        ErrorMessage.Visible = true;
                    }
                }
            }
    y Esto es lo que yo tengo que hacer y funciona pero no se como asignar los datos del usuario.
    protected void LoginUser_Authenticate(object sender, System.Web.UI.WebControls.AuthenticateEventArgs e)
            {
                UsuarioBL negUsuario = new UsuarioBL();
    
                List<ParUsuario> u = negUsuario.Logeo(LoginUser.UserName, LoginUser.Password);
    
                //  ParUsuario datosuser = negUsuario.Buscar(model.usuariocorto);
    
                Session["usuario"] = u[0];
    
                if (Session["usuario"] != null)
                {
                    FormsAuthentication.RedirectFromLoginPage(LoginUser.UserName, LoginUser.RememberMeSet);
                }
    
                else
                {
                    LoginUser.FailureText = "Usuario valido";
                }
    
    
            }


    Conocuica

    lunes, 17 de diciembre de 2018 22:40
  • Bueno, dado que estás usando el "RedirectFromLoginPage", entonces si no me equivoco este método ya te carga el "User.Identity", así que para mostrar el usuario en la "Master" basta con que pongas en el .master esto: <%=User.Identity.Name%>

    Ten presente que antes de que el usuario se "loguee", si la propia página de Login también "cuelga" de la misma Master, en ese punto el User.Identity todavía no estará establecido y probablemente dará un error. Si tienes el programa organizado de esa manera, entonces recuerda ponerle un "if" para que no intente mostrarlo antes de tiempo, bien sea en el propio <%...%> o mejor todavía en una propiedad en el code-behind, y luego muestras esa propiedad en el .master. O encapsúlalo todo en un .ascx que sirva para mostrar el usuario y pon el .ascx en la master. De hecho, eso es lo que hace la plantilla predeterminada; podrías incluso copiar el .ascx que te genera, que ya tiene dentro toda la lógica para mostrar el usuario solo cuando esté logado.

    martes, 18 de diciembre de 2018 6:51