Петля перенаправления входа в ASP.NET, когда пользователь не в роли

Я немного связан с реализацией ролей в ASP.NET MVC 5. Я пытаюсь войти в систему как пользователь, у которого нет роли, необходимой для доступа к области приложения, к которой я пытаюсь получить доступ. В этом сценарии я бы ожидал, что меня снова перенаправят на страницу входа в систему, и будет до тех пор, пока я не введу набор учетных данных, у которых есть доступ, или не перейду в другую область приложения.

На самом деле происходит то, что приложение, похоже, входит в цикл перенаправления входа в систему, отладка показывает, что действие входа в систему вызывается несколько раз.

Вот действие по входу в систему:

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

Это приводит к ошибке, сгенерированной IIS:

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

Строка запроса выглядит следующим образом:

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

Единственное изменение, которое я сделал, перейдя от рабочего решения (хотя и без авторизации на основе ролей) к моей текущей неработающей ситуации - добавление следующего над контроллером, на который я перенаправлен при успешном входе в систему:

[Authorize(Roles = "Staff")]

Как я уже говорил ранее, пользователь, под которым я вхожу, не входит в эту роль, но я бы ожидал нормального однократного перенаправления в Login без зацикливания.

Редактировать: запрошенный bu @dima, детали авторизации применяются через фильтры ... У меня есть следующее:

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

Тем не менее, я протестировал приложение с и без этой строки, и цикл перенаправления продолжается без изменений.

Ответы на вопрос(3)

Ваш ответ на вопрос