Loop de redirecionamento de logon do ASP.NET quando o usuário não está na função

Estou um pouco confuso com a implementação de funções no ASP.NET MVC 5. Estou tentando fazer logon como um usuário que não tem uma função necessária para acessar a área do aplicativo que estou tentando acessar. O que eu esperaria nesse cenário é que eu seja redirecionado para a página de login novamente e será até que eu insira um conjunto de credenciais que tenham acesso ou eu navegue para outra área do aplicativo.

O que realmente está acontecendo é que o aplicativo parece entrar em um loop de redirecionamento de login, a depuração revela que a ação Login está sendo chamada várias vezes.

Aqui está a ação de login:

[AllowAnonymous]
public ActionResult Login(string returnUrl)
{
    ViewBag.ReturnUrl = returnUrl;
    return View();
}

Isso resulta em um erro gerado pelo IIS:

HTTP Error 404.15 - Not Found
The request filtering module is configured to deny a request where the query string is too long.

A string de consulta é assim:

http://localhost/MyApplication/Account/Login?ReturnUrl=%2FMyApplication%2FAccount%2FLogin%3FReturnUrl%3D%252FMyApplication%252FAccount%252FLogin%253FReturnUrl%253D%25252FMyApplication%25252FAccount%25252FLogin%25253FReturnUrl%25253D%2525252FMyApplication%2525252FAccount%2525252FLogin%2525253FReturnUrl%2525253D%252525252FMyApplication%252525252FAccount%252525252FLogin%252525253FReturnUrl%252525253D%25252525252FMyApplication%25252525252FAccount%25252525252FLogin%25252525253FReturnUrl%25252525253D%2525252525252FMyApplication%2525252525252FAccount%2525252525252FLogin%2525252525253FReturnUrl%2525252525253D%252525252525252FMyApplication%252525252525252FAccount%252525252525252FLogin%252525252525253FReturnUrl%252525252525253D%25252525252525252FMyApplication%25252525252525252FAccount%25252525252525252FLogin%25252525252525253FReturnUrl%25252525252525253D%2525252525252525252FMyApplication%2525252525252525252FAccount%2525252525252525252FLogin%2525252525252525253FReturnUrl%2525252525252525253D%252525252525252525252FMyApplication%252525252525252525252FAccount%252525252525252525252FLogin%252525252525252525253FReturnUrl%252525252525252525253D%25252525252525252525252FMyApplication%25252525252525252525252FAccount%25252525252525252525252FLogin%25252525252525252525253FReturnUrl%25252525252525252525253D%2525252525252525252525252FMyApplication%2525252525252525252525252FAccount%2525252525252525252525252FLogin%2525252525252525252525253FReturnUrl%2525252525252525252525253D%252525252525252525252525252FMyApplication%252525252525252525252525252FAccount%252525252525252525252525252FLogin%252525252525252525252525253FReturnUrl%252525252525252525252525253D%25252525252525252525252525252FMyApplication%25252525252525252525252525252FAccount%25252525252525252525252525252FLogin%25252525252525252525252525253FReturnUrl%25252525252525252525252525253D%2525252525252525252525252525252FMyApplication%2525252525252525252525252525252FAccount%2525252525252525252525252525252FLogin%2525252525252525252525252525253FReturnUrl%2525252525252525252525252525253D%252525252525252525252525252525252FMyApplication%252525252525252525252525252525252F

A única alteração que fiz de uma solução em funcionamento (embora sem autorização baseada em função) para minha situação atual de falha é adicionar o seguinte acima ao controlador para o qual sou redirecionado em um login bem-sucedido:

[Authorize(Roles = "Staff")]

Como eu disse anteriormente, o usuário no qual estou efetuando login não está nesta função, mas esperaria um redirecionamento único e sensato para o Login, sem o loop.

Edit: solicitado bu @dima, os detalhes da autorização aplicada através de filtros ... Tenho o seguinte:

public class FilterConfig
{
    public static void RegisterGlobalFilters(GlobalFilterCollection filters)
    {
        filters.Add(new HandleErrorAttribute());
        filters.Add(new AuthorizeAttribute());
    }
}

No entanto, testei o aplicativo com e sem essa linha e o loop de redirecionamento continua inabalável.

questionAnswers(3)

yourAnswerToTheQuestion