c#mvc Cómo verificar el estado de inicio de sesión
En primer lugar, MVC desarrolla aplicaciones web. En las aplicaciones web, generalmente se utilizan cookies o sesiones para la autenticación.
Referencia: /xianggao/blog/395675 presenta los conceptos y funciones de las cookies y las sesiones.
En pocas palabras, las cookies son información registrada por el cliente y las sesiones son información registrada por el cliente. servidor, ?Y la autenticación requiere el uso de Cookie o Sesión.
Entonces, cuando MVC realiza la autenticación de identidad (iniciar sesión), el primer paso es verificar la identidad y luego emitir una cookie o sesión al usuario,
Por ejemplo: // Código del controlador:
[HttpPost]
public?ActionResult?Login()?
{ //...Verificación de inicio de sesión, si (nombre de usuario y contraseña) son correctos) { Session[" UserId"]?=?"100";?//Este es el ejemplo más simple, que consiste en registrar el ID del usuario }
}
Después grabando, el servidor. Ya sabes, esta persona es el usuario con ID = "100", y luego se verifica. En MVC, FIlter se usa generalmente para controlar los permisos del usuario, es decir, qué permisos requiere una determinada Acción, o especificar un usuario al que acceder; de lo contrario, se devuelve un error.
Generalmente, reescribirá el filtro y creará una nueva clase en su proyecto MVC: public?class?MyAuthorizeAttribute?:?System.Web.Mvc.AuthorizeAttribute
//Heredar mvc El AuthorizeAttribute integrado
{
protected?override?bool?AuthorizeCore(HttpContextBase?httpContext)
{
if(httpContext) . Sesión["UserId"]!=null)
{
if(httpContext.Session["UserId"]=="100"}
{
retorno?true;
}
else
{
retorno?false;
}
}
return?false;
}
}
Este filtro es muy simple, si Session["UserId"] == "100", pasará (devolverá verdadero) y otros no podrán pasar
El último paso es agregar el controlador que necesita. verificar la identidad. Este filtro es suficiente. [Autorizar]?
//Esto es para verificar la identidad. Si el usuario no ha iniciado sesión o el ID de usuario no es igual a 100, el sistema lo prohibirá. de ingresar a la interfaz
public?ActionResult?Index()
{ Return?View();
}
.