En MVC normalmente utiliza el atributo [Authorize]
para gestionar la autorización. Los controladores o las acciones individuales que están revestidas con ese atributo requerirán que el usuario esté autorizado para acceder a ellas; todas las demás acciones estarán disponibles para los usuarios anónimos.
En otras palabras, un enfoque de lista negra, donde las acciones que requieren autorización están en la lista negra para usuarios anónimos usando [Authorize]
- todas las acciones (que no incluyen el atributo) estarán disponibles.
Actualización:
Con MVC4 se ha introducido un nuevo atributo, es decir, el atributo [AllowAnonymous]
. Junto con el atributo [Authorize]
, ahora puede tomar un enfoque de lista blanca en su lugar. El enfoque de lista blanca se logra al vestir todo el controlador con el atributo [Authorize]
, para forzar la autorización de todas las acciones dentro de ese controlador. A continuación, puede adaptar acciones específicas, que no deberían requerir autorización, con el atributo [AllowAnonymous]
y, por lo tanto, hacer una lista blanca de esas acciones únicamente. Con este enfoque, puede estar seguro de que, por accidente, no se olvide de vestir una acción con el [Authorize]
, dejándola a disposición de todos, aunque no sea así.
su código a continuación, podría ser algo como esto:
[Authorize]
public class UserController : Controller {
[AllowAnonymous]
public ActionResult LogIn() {
// This action can be accessed by unauthorized users
}
public ActionResult UserDetails() {
// This action can NOT be accessed by unauthorized users
}
}
: si es así, ¿por qué no puedo ver mi Register.cshtml? cuando solo habilito la autenticación de formulario. – JED
@JED No estoy seguro, probablemente necesite complementar su pregunta con más contexto para poder resolverlo. ¿Obtiene algún error o qué sucede cuando intenta acceder a su vista de registro? –
Creo que sé cuál es el problema. Niego todo acceso de usuario en mi configuración – JED