Asp.NetページからのAJAXリクエストを使用して呼び出されているいくつかのWebサービスがあります。ユーザーの認証に失敗した場合、ユーザーをログインページにリダイレクトしたいと思います。
私が直面している問題は、AJAXリクエストのerrorHandler関数でユーザーを手動でリダイレクトする必要があることです。
ブラウザが応答を理解してユーザーをログインページにリダイレクトするように、Webサービスから適切なエラーコードを使用してHttpExceptionをスローする方法があるかどうか疑問に思っていました(どちらかわかりません)。
サービスコールを試しthrow new HttpException(401,"Unauthorized access request);
ましたが、errorHandlerがこの例外を処理し、ブラウザがユーザーをログインページにリダイレクトしません。
また、HttpModuleを使用してこれを実現できるかどうかを考えていましたが、サービスコンストラクターで承認チェックを行うよりも優れたソリューションでしょうか?
- アップデート -
とを追加するHttpContext.Current.Response.RedirectLocation = "login.aspx";
と HttpContext.Current.Response.StatusCode = 307;
、「。」というエラーが表示されます"Resource cannot be found"
。これは、RequestedURLに表示されるものです/Web/Services/svcSomething.asmx/login.aspx
。
リダイレクト場所が新しいページであり、Webメソッドではないことをブラウザに伝えるにはどうすればよいですか?