У меня есть приложение со многими ajax-экшенами (реализованными с помощью JQuery.ajax), которое возвращает JSON или html. Некоторые из них должны быть доступны только авторизованным пользователям, и я украсил их атрибутом [Authorize]
. Для не ajax действий, если пользователь не авторизован - система перенаправляет его на страницу авторизации (настроенную в web.config).
Но это неприменимо для действий ajax, т.к. если пользователь был авторизован - он загружает страницу, после этого cookie истекает и он не авторизован, и вместо блока html, который должен заменить старый, он получает мою страницу входа внутри блока .
Я знаю, что могу решить эту проблему вручную, например удалить атрибут [Authorize] и вернуть специальный json/пустой html, если пользователь не авторизован. Но мне не нравится это решение, потому что мне нужно переписать все свои действия и функции ajax. Мне нужно глобальное решение, которое позволит мне не переписывать мои действия (это может быть настраиваемый атрибут авторизации или некоторая пользовательская обработка несанкционированных результатов http).
Я хочу вернуть код состояния, если запрос ajax, и перенаправить на страницу входа, если запрос не ajax.