Tengo un problema de validación de identidad. Tengo un código HTML y CSS que me gusta mostrar a las personas que iniciaron sesión con un número de ticket, pero cada vez que inicio la aplicación después de haberla cerrado como usuario conectado, siempre vuelvo como usuario conectado con número de billete no válido.
<ul class="navbar-nav justify-content-end"> @if (HttpContext.Current.User.Identity.IsAuthenticated) { <li class="nav-item pt-4"> <a class="nav-link" aria-current="page" href="/mina-sidor/">Mina sidor</a> </li> <li class="nav-item pt-4"> @Html.ActionLink("Logga ut", "Logout", "Authentication", new { area = "" }, new { @class = "btn btn-primary" }) </li> <li class="nav-item pt-4 px-1"> <p>Inloggad som <br /> <strong>@User.Identity.Name</strong></p> </li> } else { <li class="nav-item pt-2"> @Html.ActionLink("Logga in", "Login", "Authentication", new { area = "" }, new { @class = "btn btn-primary" }) </li> } </ul>HttpContext.Current.User.Identity.IsAuthenticated -> devuelve verdadero siempre a menos que cierre la sesión manualmente.
Probé Request.IsAuthenticated -> lo mismo aquí.
¿Cómo manejo que esta devolución sea falsa cuando el sitio web está cerrado o se agotó el tiempo de espera?
¿Tienes un github u otro repositorio para ver tu código?
¿Está lleno el User.Identity.Name?
Si su sistema de autenticación está basado en cookies, al salir de la aplicación no se borran/eliminan las cookies. Por lo tanto, debe verificar si todavía hay.
De forma predeterminada, ASP.NET está configurado para cookies de sesión . Estas cookies no son persistentes y no sobreviven si cierra su navegador.
Pero si tiene una cookie persistente con un tiempo de caducidad, como:
theCookie.Expires = DateTime.Now.AddHours(1);su sesión sobrevivirá a la acción de cierre del navegador.
Si su sistema de autenticación se basa en almacenamiento de sesión o almacenamiento persistente, verifíquelo a través de F12 - Application - Storage .