Коротко:Как обрабатывать UnauthorizedRequest с помощью Ajax вызова в ASP.Net MVC2
У меня есть саб, классифицируемых AuthorizeAttribute в моей структуре, в которой я делаю пользовательские разрешения.
Я в процессе перехода от обычного рендеринга представления asp.net mvc к рендерингу Ajax через jQuery. Следовательно, каждая ссылка в приложении выполняет вызов ajax для получения данных.
Чтобы удовлетворить это, я преобразовал большую часть своих страниц в частичные представления, так что каждый запрос ajax получает только часть, которая должна быть обновлена на странице.
Во время рендеринга обычного представления, когда запрос был несанкционирован, он перенаправлялся на страницу входа в систему, описанную в web.config. После преобразования в Ajax вещи немного отличаются, поскольку я не хочу разметки для страницы входа в запрос ajax, но хочу иметь структурированный ответ, чтобы я мог действовать соответственно внутри вызова ajax.
Для этого я считаю, что мне нужно переопределить метод HandleUnauthorizedRequest в классе класса ClassizeAttribute и установить filterContext.Result в результат json. Но при этом, как бы я мог различать несанкционированный запрос и успешный запрос, потому что с точки зрения ajax-вызовов оба являются успешными ответами; следовательно, будет обрабатываться в обработчике успеха.
Что было бы правильным способом справиться с этой проблемой?
Хорошо, что это хорошо работает во время сеанса, как только сессия истекает, страница входа снова отправляется как ответ на запрос ajax, статус которого является успешным. Следовательно, мне нужно будет что-то сделать, чтобы обнаружить, что сессия истекла, есть ли какие-либо предложения? – Nosh