Как лучше всего использовать атрибут [Authorize] с Ajax и Partial Views? - PullRequest
8 голосов
/ 13 апреля 2009

Я собирался использовать [Authorize] в действиях, которые возвращают частичные представления через Ajax; но я не получаю желаемого поведения (хотя я ожидал такого поведения).

Это похоже на длинный выстрел; но есть ли способ расширить этот атрибут, чтобы «разорвать» вызов AJAX и перенаправить всю страницу на экран входа в систему? (В отличие от возврата экрана входа в любое место, которое я установил UpdateTargetId?)

Я думаю, что у меня есть справка о том, как я буду делать это при каждом конкретном вызове Ajax, но если бы я мог как-то централизовать это, это сэкономило бы много кода ...

1 Ответ

8 голосов
/ 13 апреля 2009

AuthorizeAttribute не сделает этого за вас, но вы можете централизовать свой код. Создайте новый атрибут, который возвращает код состояния http 401 (не авторизован), когда ни один пользователь не вошел в систему. В файле JavaScript, указанном вашим site.master, обработайте событие jQuery $ .ajaxError. Найдите http 401 в коде статуса ответа и перенаправьте на свою страницу входа через JavaScript. Теперь любой Ajax-вызов, который вы делаете через jQuery, закончится здесь, если текущий пользователь не авторизован.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...