2012-04-30 3 views
0

У меня есть несколько веб-сервисов, которые вызывается с использованием запросов 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.

Как сообщить браузеру, что перенаправление местоположения - это новая страница, а не веб-метод?

+0

Hwo о [ '307'] (http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.3.8) - Временный код перенаправления. –

+0

ну, браузер не перенаправляет пользователя на страницу входа. он показывает предупреждение, которое у меня есть в errorHandler. – Asdfg

ответ

1

IMO - вам необходимо обработать ошибку (401) на стороне сервера & перенаправить пользователя на страницу входа. Так как у вас нет обработчика на стороне сервера, ошибка передается клиенту как ответ &, поэтому вы видите код на стороне клиента, чтобы перенаправить пользователя ...

Смежные вопросы