2012-04-30 2 views
0

을 사용하여 자동으로 사용자를 로그인 페이지로 리디렉션합니다. Asp.Net 페이지에서 AJAX 요청을 사용하여 호출되는 여러 웹 서비스가 있습니다. 사용자의 승인이 실패하면 로그인 페이지로 리디렉션하고 싶습니다.은 오류 코드

내가 직면하고있는 문제는 AJAX 요청의 errorHandler 기능에서 사용자를 수동으로 리디렉션해야한다는 것입니다.

내 webserivce에서 적절한 오류 코드가있는 HttpException을 던질 수있는 방법이 있는지 궁금합니다. 브라우저가 응답을 이해하고 사용자를 로그인 페이지로 리디렉션하도록합니다.

내 서비스 호출에서 throw new HttpException(401,"Unauthorized access request);을 시도했지만이 errorHandler가이 예외를 처리하고 브라우저가 사용자를 다시 로그인 페이지로 리디렉션하지 않습니다.

또한 내가 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 about [ '307'] (http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html#sec10.3.8) - 임시 리디렉션 코드. –

+0

글쎄, 여전히 브라우저가 사용자를 로그인 페이지로 리디렉션하지 않습니다. 그것은 errorHandler에있는 경고를 보여줍니다. – Asdfg

답변

1

IMO - 서버 쪽에서 오류 (401)를 처리해야합니다. & 사용자를 로그인 페이지로 리디렉션하십시오. 서버 측에서 처리기가 없으므로 오류는 클라이언트에 응답 &으로 전달되므로 사용자를 리디렉션하도록 클라이언트 측 코드를 볼 수 있습니다 ...