none
Problemas con autentificacion ASP.NET CORE 1.0 RRS feed

  • Pregunta

  • tengo un problema y es que cuando presiono salir, para desloguearme, cuando presiono el boton atras me regresa a la pagina donde estaba y la refresco y pide autentificacion, muchas gracias por sus ayudas

    Este es el codigo en el startup 

                app.UseCookieAuthentication(options =>

                {

                    options.LoginPath = "/Account/Login";

                    options.AutomaticAuthenticate = true;

                    options.AutomaticChallenge = true;

                    options.SlidingExpiration = false;

                    options.ExpireTimeSpan = TimeSpan.FromMinutes(30);





                });

    el codigo del boton cerrar sesion

                                 

    <form asp-controller="Account" asp-action="LogOff" method="post" id="logoutForm" class="navbar-right">

                                    <li><button type="submit" class="btn btn-link navbar-btn navbar-link">Cerrar Sesión</button></li>

                                </form>

    el codigo en el controlador

    [Authorize]
        public class BodegasController : Controller{}

    el codigo del AccountController

      // POST: /Account/LogOff
            [HttpPost]
            [ValidateAntiForgeryToken]
            public async Task<IActionResult> LogOff()
            {
               
                await _signInManager.SignOutAsync();
                _logger.LogInformation(4, "User logged out.");
                return RedirectToAction(nameof(HomeController.Index), "Home");

            }


    Jorge Vidal

    martes, 19 de abril de 2016 20:54

Respuestas

  • Hola Sergio, pues mira la respuesta es esta, pero si tuvieras una mejor manera de hacerlo, ya que me parece una manera muy engorrosa de solucionarlo Gracias por tu ayuda

      <script type="text/javascript">    

       //Disable Back Button In All Browsers.
            function DisableBackButtonAllBrowsers() {
                window.history.forward()
            };
             DisableBackButtonAllBrowsers();
            window.onload = DisableBackButtonAllBrowsers;
             window.onpageshow =
    function (evts) {
    if (evts.persisted) DisableBackButtonAllBrowsers();
    }; 
            window.onunload =
    function () { void (0) };
        </script>

    y este es el paso dos para los que no le funcione el de arriba, a mi no me funciono para asp.net mvc5 

    /// <summary>
    /// Logs user out and renders login <see cref="View"/>
    /// </summary>
    /// <returns>Login <see cref="View"/></returns>
        public ActionResult Logout()
        {
                //Disable back button In all browsers.
                Response.Cache.SetCacheability(HttpCacheability.NoCache);
                Response.Cache.SetExpires(DateTime.Now.AddSeconds(-1));
                Response.Cache.SetNoStore();
                FormsAuthentication.SignOut();
                return View("Login");
         }


    Jorge Vidal

    • Marcado como respuesta Jorge Geek jueves, 21 de abril de 2016 13:35
    miércoles, 20 de abril de 2016 12:55

Todas las respuestas

  • no entendí bien. Pulsas en cerrar sesión, la cierras, vuelves a trves del navegador a la pagina anterior y te pide autenticación es así?

    pues es correcto.si ya has cerrado session lo suyo es que se vuelvan a pedir las credenciales.


    Si se solucionó tu consulta no olvides marcar la respuesta. Si te ayudó, vótala como útil. Saludos

    miércoles, 20 de abril de 2016 6:42
    Moderador
  • hola prueba a establecer

    options.options.LoginPath = new PathString("/Account/Login/");
         options.AccessDeniedPath = new PathString("/Account/Forbidden/");
    
    options.AuthenticationScheme = "Cookie"; 
    
        option.AutomaticAuthenticate=true;

    Si se solucionó tu consulta no olvides marcar la respuesta. Si te ayudó, vótala como útil. Saludos


    miércoles, 20 de abril de 2016 7:02
    Moderador
  • Si practicamente lo que quiero es que cuando le den atras no entre en la pagina, porque se supone que ya cerraste sesion, y ya no estas logeado

    Jorge Vidal

    miércoles, 20 de abril de 2016 12:37
  • es que pienso que queda cargado en el navegador la pagina anterior y en realidad la sesión ya ha terminado, pero cuando presiono en el boton back del navegador me direcciona a la pagina en que estaba sin estar logeado, y todo eso me pasa con asp.net mvc5 y identity

    Jorge Vidal

    miércoles, 20 de abril de 2016 12:39
  • options.LoginPath = "/Account/Login";

                      options.AutomaticAuthenticate = true;

                      options.AutomaticChallenge = true;

                      options.SlidingExpiration = false;

                      options.ExpireTimeSpan = TimeSpan.FromMinutes(30);

    yo tenia esto y todavia no me funciona 



    Jorge Vidal

    miércoles, 20 de abril de 2016 12:40
  • Hola Sergio, pues mira la respuesta es esta, pero si tuvieras una mejor manera de hacerlo, ya que me parece una manera muy engorrosa de solucionarlo Gracias por tu ayuda

      <script type="text/javascript">    

       //Disable Back Button In All Browsers.
            function DisableBackButtonAllBrowsers() {
                window.history.forward()
            };
             DisableBackButtonAllBrowsers();
            window.onload = DisableBackButtonAllBrowsers;
             window.onpageshow =
    function (evts) {
    if (evts.persisted) DisableBackButtonAllBrowsers();
    }; 
            window.onunload =
    function () { void (0) };
        </script>

    y este es el paso dos para los que no le funcione el de arriba, a mi no me funciono para asp.net mvc5 

    /// <summary>
    /// Logs user out and renders login <see cref="View"/>
    /// </summary>
    /// <returns>Login <see cref="View"/></returns>
        public ActionResult Logout()
        {
                //Disable back button In all browsers.
                Response.Cache.SetCacheability(HttpCacheability.NoCache);
                Response.Cache.SetExpires(DateTime.Now.AddSeconds(-1));
                Response.Cache.SetNoStore();
                FormsAuthentication.SignOut();
                return View("Login");
         }


    Jorge Vidal

    • Marcado como respuesta Jorge Geek jueves, 21 de abril de 2016 13:35
    miércoles, 20 de abril de 2016 12:55