Это немного больно, если честно. Тем более, на мой взгляд, если вы используете Federated Identity, например Windows Identity Foundation и / или Azure AppFabric Access Control Service.
Ваши Ajax-вызовы не могут обработать перенаправление.
Мое решение / предложение не в том, чтобы пометить методы действия контроллера, вызванного Ajax, с помощью [Авторизовать], а вместо этого полагаться на наличие некоторого значения, которое вы вставляете в Состояние Сеанса из действия контроллера, у которого действительно есть [Авторизовать] ( обычно метод действия контроллера, который был вызван для отображения представления). Вы знаете, что значение не может попасть в состояние сеанса, если пользователь не прошел аутентификацию (а время сеанса не истекло). Сбой при вызове вашего метода Ajax, если это значение отсутствует, возвращая конкретный результат JSON, который вы можете изящно обработать в коде на стороне клиента.
Использование [Authorize] в методе контроллера Ajax вызывает странные, часто скрытые ошибки (например, исчезновение обновлений).