0

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メソッドではないことをブラウザに伝えるにはどうすればよいですか?

4

1 に答える 1

1

IMO - サーバー側でエラー (401) を処理し、ユーザーをログイン ページにリダイレクトする必要があります。サーバー側にハンドラーがないため、エラーは応答としてクライアントに渡され、クライアント側でユーザーをリダイレクトするコードが表示されます...

于 2012-04-30T18:17:05.697 に答える