Это проверяет, прошел ли Аутентификация пользователя, а затем, если запрос является AjaxRequest.Затем он перенаправит пользователя к методу LogOn в моем контроллере учетной записи, если они больше не аутентифицированы для Ajax actionlink
Да, но если вы настроили Ajax.ActionLink
или Ajax.BeginForm
для обновлениянекоторый элемент DOM с результатами AJAX-запроса, использующего AjaxOptions
, на самом деле не имеет значения, перенаправляете ли вы на сервер.AJAX-запрос просто следует за перенаправлением и вставляет полученный HTML-код (/ Account / LogOn), перенаправленный в элемент DOM.
Таким образом, перенаправление из AJAX-запроса не решит вашу проблему.Как вы знаете, весь смысл запроса AJAX заключается в том, чтобы оставаться на одной странице (адресная строка никогда не меняется).
Если вы хотите правильно обработать условие cookie cookie проверки подлинности *1013* надлежащим образом в ваших AJAX-запросах, вам придется выполнить перенаправление на клиенте (используя window.location.href
).Чтобы достичь этого, вы можете взглянуть на следующий пост в блоге , в котором Фил Хаак предлагает отличную технику, позволяющую вашему серверу отправлять код состояния HTTP 401 в этом случае вместо перенаправления.Затем на клиенте вы можете перехватить этот код (например, подписавшись на глобальный обработчик AJAX) и перенаправить клиенту страницу входа в систему.