ASP.Net MVC: o AuthorizeAttribute pode ser substituído?

Meu projeto atual é um aplicativo Web interno criado usando o ASP.Net MVC ao qual estou adicionando autenticação. Eu tenho um HTTPModule pré-criado que cria um IPrincipal com as funções apropriadas. Se o usuário não estiver autenticado, recebo um objeto de usuário com a função "Public"

Como esse é um aplicativo interno, a maioria das páginas é privada e só pode ser vista na função "Administrador". Como tenho um controlador de base, posso fazer isso:

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

Eu tenho um problema, já que algumas das ações são visíveis em um site público e, se eu as atribuo assim:

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

    }
}

A página falha ao carregar, pois o usuário não está autenticado. Parece que a função "Público está sendo ignorada na classe herdada. Alguém sabe se as funções podem ser substituídas por classes herdadas?

Também estou tentando evitar atribuir todos os controladores com Funções = "Admin"

brigado, Keit

questionAnswers(2)

yourAnswerToTheQuestion