Я пытаюсь обрабатывать неудавшийся запрос ajax в аутентификации формы MVC. Я добавил следующий код в Global.asax.ajax mvc form authentication redirect issue
protected void Application_BeginRequest()
{
HttpRequestBase request = new HttpRequestWrapper(Context.Request);
if (request.IsAjaxRequest())
{
Context.Response.SuppressFormsAuthenticationRedirect = true;
}
}
и на основной раскладке, я добавил следующий код
$(document).ajaxError(function (event, request, settings) {
if (request.status == 401) {
window.location.href = '@Url.Action("Login", "Account")';
}
});
Выпуск 1: На обычных вызовов форма autheication перенаправляет на страницу входа в систему вместе с возвратного URL, который будет помогите пользователю вернуться к той же странице, которую он последний раз посещал до истечения срока действия. http://localhost:53733/Account/Login?ReturnUrl=%2fUser%2fUserList
Где как во время ajax-вызова, так как я перенаправляю с помощью jQuery, это http://localhost:53733/Account/Login. Как можно сделать обеспечить даже в Ajax называют его перенаправляет на страницу входа в систему вместе с возвратным URL
Выпуск 2: Также местные пожары функция Аякса обработчика ошибок до глобального обработчика ошибок Ajax. Это приведет к отображению ошибки на странице перед переходом на страницу входа. Не знаете, как справиться с этим. Пожалуйста посоветуй.
Спасибо. У нас есть глобальное решение для второй проблемы. Существует много вызовов ajax, которые мне нужно изменить. –
@TechJerk Я думаю, вам нужно это сделать. В противном случае оба будут выполнены (первый локальный, второй глобальный) – Shyju
window.location.href получает полный URL http: // localhost: 53733 /? ReturnUrl = http: // localhost: 53733/User/UserList. Я ожидаю что-то похожее на то, как он выглядит с помощью проверки подлинности через http: // localhost: 53733/Account/Login? ReturnUrl =% 2fUser% 2fUserList. Это поможет мне получить обобщенную логику кода в jQuery для обработки проверки пользователя вместе с returnURL –