MVC viene con un ActionFilter Para lograr la autenticación de identidad en Asp.NET WebForm, Microsoft nos ofrece tres opciones, la más utilizada es la autenticación de Formularios, que debe configurarse con la información correspondiente. Por ejemplo, la siguiente información de configuración:
Esto significa que nuestra página de inicio de sesión es Login.aspx, la página predeterminada tras el inicio de sesión exitoso es Default.aspx, y nuestra información de usuario adopta dos métodos: verificación y cifrado. Y lo más importante es que necesitamos escribir el método de autorización (la autorización de abajo debe estar escrita, de lo contrario es inútil usar solo la autenticación de Forms y luego establecer atributos relevantes), negar a todos los usuarios anónimos y solo los usuarios iniciados sesión pueden acceder normalmente. Después de eso, configuramos el botón de inicio de sesión para escribir el nombre de usuario en la cookie (es decir, ejecutar FormsAuthentication.SetAuthCookie(name, false); Eso es todo. 0 En Asp.Net MVC también podemos usar autenticación de Formularios, pero si lo haces en WebForm, no funcionará. Por ejemplo, configuras la información así:
Configuraste un inicio de sesión en tu Login.aspx para activar el inicio de sesión en el AccountController, donde el código de inicio de sesión:
Después de hacer esto, verás que tu inicio de sesión no se ejecutará. ¿Cuál es la razón? ¿Por qué no funciona la misma configuración en MVC? La razón es que el mecanismo es diferente, porque configuras un método de autorización que hace que el inicio de sesión sea inaccesible. ¿Entonces, cómo lo hacemos? De hecho, en Asp.Net MVC tenemos una mejor forma de hacer todo esto, no necesitamos un método de autorización, lo que significa que nuestra información de configuración es así:
No es necesario especificar que los usuarios anónimos no pueden iniciar sesión, etc. Por supuesto, verás que solo hacer esto no es suficiente, pero tenemos que decirle al sistema cuáles deben iniciar sesión para poder acceder. Puede que pienses, o()〈)))o Oh, eso es demasiado problema. No es así, es muy sencillo, solo tenemos que marcar [Autorizar] en la acción que hay que autenticar. Por ejemplo, tengo dos páginas en la carpeta Home, Índice y Inicio, y quiero que el Índice esté autenticado para acceder, pero Inicio no lo hace, así que solo necesito darle al Índice la etiqueta Acción [Autorizar], es decir:
Esto permite acceder a Index tras iniciar sesión, mientras que Home no necesita iniciar sesión. Si necesitas autorizar roles, puedes especificar el rol al marcar Autorizar (por ejemplo, [Authorize(Role=Administrators)]), pero tienes que usar el mecanismo de membresía que proporciona Microsoft, porque tu rol no puede existir sin motivo, sino que existe en la base de datos correspondiente, como mencioné en otro blog. Personalizar el ActionFilter A veces puede que no puedas cumplir con este tipo de autenticación, o si sientes que no eres lo suficientemente flexible, entonces no importa, Asp.Net MVC te permite personalizar tu ActionFilter. Por ejemplo, ahora personalizo la autenticación:
Si se requiere gestión de usuarios, definiré los filtros relacionados con los roles:
De hecho, verás que los dos atributos anteriores han sido resueltos por el Authorized incorporado de MVC, y aquí te decimos principalmente que puedes ampliarlo si es necesario. ¡Pues eso es todo por hoy! Descarga del código fuente: FormFormsAuthenticationMvc
|