У меня есть несколько веб-сервисов, которые вызывается с использованием запросов AJAX с страницы Asp.Net. Если авторизация пользователя не удалась, я хочу перенаправить его на страницу входа.автоматически перенаправляет пользователя на страницу входа с кодом ошибки
Проблема, с которой я столкнулся, заключается в том, что я должен вручную перенаправить пользователя в функцию errorHandler запроса AJAX.
Мне было интересно, есть ли способ, которым я могу передать HttpException с правильным кодом ошибки из моего webserivce (я не знаю, что), чтобы браузер понимал ответ и перенаправлял пользователя на страницу входа?
Я попробовал throw new HttpException(401,"Unauthorized access request);
в своем сервисе, но моя ошибкаHandler обрабатывает это исключение, и браузер не перенаправляет пользователя на страницу входа.
Также я думал, могу ли я достичь этого с помощью HttpModule, это будет лучшее решение, а не проверка авторизации в конструкторе службы?
--Update--
После добавления HttpContext.Current.Response.RedirectLocation = "login.aspx";
и HttpContext.Current.Response.StatusCode = 307;
, теперь он дает мне ошибку говоря "Resource cannot be found"
. Это то, что он показывает в RequestedURL: /Web/Services/svcSomething.asmx/login.aspx
.
Как сообщить браузеру, что перенаправление местоположения - это новая страница, а не веб-метод?
Hwo о [ '307'] (http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.3.8) - Временный код перенаправления. –
ну, браузер не перенаправляет пользователя на страницу входа. он показывает предупреждение, которое у меня есть в errorHandler. – Asdfg