¿Cómo permitir que un usuario anónimo acceda a una página determinada en MVC?

He habilitado la autenticación de formulario en mi aplicación web ASP.NET MVC. Quiero permitir el acceso de usuarios anónimos solo a algunas páginas específicas, incluido Register.cshtml, por ejemplo. Pude permitir el acceso a mi archivo CSS desde mi raíz web.config haciendo esto.

       

Ahora quiero permitir el acceso anónimo a otras páginas, como Inicio y Registro. ¿Alguien sabe cómo lograr esto?

En MVC, normalmente usa el atributo [Authorize] para administrar 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 que utilizan [Authorize] : todas las acciones (que no incluyen el atributo) estarán disponibles.

Actualizar:

Con MVC4 se ha introducido un nuevo atributo, a saber, 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 vestir 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. Con este enfoque, puede estar seguro de que, por accidente, no se olvide de vestir una acción con [Authorize] , dejándola a disposición de todos, aunque no sea así.

Su código 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 } } 

En el Web.config tuve la siguiente autorización

    

esto causa el

 [AllowAnonymous] 

no funcionaba correctamente, tuve que eliminar esa autorización de mi Web.config, y en todos los controladores poner la línea

 [Authorize] 

antes de la statement de la clase, para que funcione correctamente.