¿Cuál es la mejor manera de redirigir al usuario para que inicie sesión cuando se pierde la caché? Por el momento estoy haciendo esto:

if (Session["Id"] == null)
{
    return RedirectToAction("Login", "Home");
}

Pero con este método, puso este código en cada función, ¿hay alguna otra forma de hacer esto en todo el programa? Intenté buscar haciendo esto desde web.config, pero sin resultados.

0
Alexandre Hass 16 oct. 2018 a las 21:25

2 respuestas

La mejor respuesta

Suponiendo que está utilizando la autenticación basada en formularios y permitiendo el acceso solo a los usuarios autorizados, esto podría lograrse realizando cambios en web.config

<authentication mode="Forms">
      <forms loginUrl="login.aspx" defaultUrl="default.aspx" name=".YourApplication" timeout="60" cookieless="AutoDetect" />
</authentication>

<authorization>
      <deny users="?" />
</authorization>

La propiedad loginUrl le dice al servidor a dónde dirigir al usuario si no ha iniciado sesión, y la propiedad defaultUrl le dice al servidor a dónde dirigirlo después de que el usuario haya iniciado sesión.

Los usuarios denegación = "?" le dice al servidor que rechace a cualquier usuario que no esté autenticado y lo dirige a la página loginUrl

En el código subyacente de la página de inicio de sesión, necesita algo como esto después de verificar las credenciales insertadas:

FormsAuthentication.RedirectFromLoginPage(userName.Text, True)

Referencia

1
Aamol 17 oct. 2018 a las 06:34
private const string GlobalAuthKey = "GlobalAuthTime";

Puede insertar toda la información del usuario de autenticación en authList.

HttpRuntime.Cache.Insert(GlobalAuthKey, authList);

Luego obtén caché:

var authList = HttpRuntime.Cache.Get(GlobalAuthKey) as List<AuthInfo> ?? new 
 List<AuthInfo>();

Después de eso, verifica esta información de inicio de sesión de usuario específica y obliga a su usuario con esta condición de deseo.

0
zaman 17 oct. 2018 a las 05:42