none
Datos de bienvenida(¡Hola username ! [Cerrar Sesion]) se borran al logonearse haciendo Response.Redirect en la vista RRS feed

  • Pregunta

  • Estimados amigos buenos dias,

    Estoy desarrollando en asp.net mvc3 donde tengo un Layout y las demas vistas y una de ellas es una vista parcial para el inicio de sesion.

    Al hacer click en el inicio de sesion aparece normalmente la vista para ingresar el usuario y contraseña, mi problema es al momento de dar click en el boton submit del inicio de sesion, porque yo quiero dejar la firma del usuario pero desaparece y vuelve a salir [inicar sesion], no se como hacer para redireccionar a la pagina de bienvenida sin que se pierdan lo datos del login como son el username, etc. Yo estaba haciendo el response.redirect en la vista parcial como se muestra a continuación: 

    @model SRTPEID.Administrador.Models.LogOnModel 

    @if(Model != null) 
    {
         
        if(Model.UserName.Length > 0) {
            <text>¡Hola <strong> @Model.UserName</strong>!
            [ @Html.ActionLink("Cerrar sesión", "LogOff", "Account") ]</text>
            //Response.Redirect("~/Home/Bienvenida");
            //Response.RedirectPermanent("~/Home/Bienvenida", false);
            
            
        }
    }
    else
    {
        <text>[ @Html.ActionLink("Iniciar sesión", "LogOn", "Account") ]</text>
    }

    o sino lo hacia en el controlador pero igual no dejaba los datos de bienvenida en esa vista parcial.

    Por favor amigos su gran ayuda y muchas gracias de antemano por tomar en cuenta este inconveniente.

    Saludos cordiales,

    martes, 4 de septiembre de 2012 15:14

Respuestas

  • @Juan C. Gómez

    No. Eso no debe hacerse así en ASP.NET. ASP.NET tiene un mecanismo de autenticación propio que es independiente de la sesión.

      • Para comprobar si una petición está autenticada basta con llamar a Request.IsAuthenticated
      • Para saber el nombre del usuario basta con llamar a User.Identity.Name
      • Para evitar que una cierta acción de un controlador pueda ser llamda por alquien no autenticado basta con decorarla con [Authorize]

    Usar la sesión para guardar el usuario autenticado es un error muy común en asp.net.

    @VictorFrancisco: No me ha quedado muy claro lo que quieres hacer... 


    Eduard Tomàs Blog: http://geeks.ms/blogs/etomas -- Twitter: eiximenis

    • Marcado como respuesta Eder Costa jueves, 8 de noviembre de 2012 14:02
    jueves, 6 de septiembre de 2012 7:09

Todas las respuestas

  • Muy buenas

    VictorFrancisco, ya has probado manejarlo en una variable de Session?, en lo personal considero que te seria mucho mas facil; cuando el usuario inicia la session, le asignas un valor a esta variable y cuando el usuario cierre la session simplemente destruyes esta variable

    Saludos


    Juan Gómez

    jueves, 6 de septiembre de 2012 5:23
  • @Juan C. Gómez

    No. Eso no debe hacerse así en ASP.NET. ASP.NET tiene un mecanismo de autenticación propio que es independiente de la sesión.

      • Para comprobar si una petición está autenticada basta con llamar a Request.IsAuthenticated
      • Para saber el nombre del usuario basta con llamar a User.Identity.Name
      • Para evitar que una cierta acción de un controlador pueda ser llamda por alquien no autenticado basta con decorarla con [Authorize]

    Usar la sesión para guardar el usuario autenticado es un error muy común en asp.net.

    @VictorFrancisco: No me ha quedado muy claro lo que quieres hacer... 


    Eduard Tomàs Blog: http://geeks.ms/blogs/etomas -- Twitter: eiximenis

    • Marcado como respuesta Eder Costa jueves, 8 de noviembre de 2012 14:02
    jueves, 6 de septiembre de 2012 7:09