ASP.Net MVC: ¿Se puede anular AuthorizeAttribute?

Mi proyecto actual es una aplicación web interna creada con ASP.Net MVC a la que agrego autenticación. Tengo un HTTPModule preconstruido que crea un IPrincipal con los roles apropiados. Si el usuario no está autenticado, obtengo un objeto de usuario con el rol "Público"

Como se trata de una aplicación interna, la mayoría de las páginas son privadas y solo pueden verse con el rol "Administrador". Como tengo un controlador base, puedo hacer esto:

[Authorize(Roles="Admin")]
public abstract class MyControllerBase : Controller
{
    ...
}

in embargo, tengo un problema, ya que algunas de las acciones se pueden ver en un sitio web público y si las atribuyo así:

[Authorize(Roles="Public")]
public class LoginController : MyController
{
    public ActionResult Index()
    {

    }
}

La página no se carga ya que el usuario no está autenticado. Parecería que el rol de "Público está siendo ignorado en la clase heredada. ¿Alguien sabe si los roles pueden ser anulados por las clases heredadas?

También estoy tratando de evitar atribuir todos los controladores con Roles = "Admin"

Gracias, Keith.

Respuestas a la pregunta(2)

Su respuesta a la pregunta