2016-11-03 6 views
0

私はOAuthソリューションを実装しています。ここでは、アプリケーションに接続する必要がある外部システムにエンドポイントを提供します。MVCでOAuthを実装 - Response.Redirectの後に実行を停止したい

システムは、このエンドポイント(MVCアクションメソッド)を最初に呼び出すため、ユーザーを元のシステムに戻すためにResponse.Redirectを実行する必要があります。

Response.Redirectが呼び出された直後にコード実行を停止する必要があります。私は、コードの実行を停止しない以下を、試してみた:私もリダイレクトがしかし、これは私がしようとしていることを私は事実に関連していると思わエラーが発生した後のActionResultを返す試みた

HttpContext.Current.Response.Redirect(url, true); 
HttpContext.Current.ApplicationInstance.CompleteRequest(); 

リダイレクトして、結果を応答として返します。

Response.Redirectの後でコードの実行を停止するにはどうすればよいですか?

答えて

0

むしろHttpContext.Current.Response.Redirect(...)を使用しようとするよりも、あなたはコントローラ自身のRedirect(...)メソッドを使用するとよいでしょう:

return Redirect(url); 
+0

おかげで、私はしかし、コントローラでリダイレクトをやっていないんだが、私はそれをやっていますコントローラが使用する標準のC#クラスです。私はあなたが提案しているリダイレクトの種類は 'RedirectResult'型であり、C#クラスでは利用できないようです。コントローラの外にあるC#クラスからリダイレクト(URL)を返すことはできますか?もしそうなら、どうですか? –

+0

あなたは 'System.Web.Mvc.RedirectResult'(あなたが別のプロジェクトで起こった場合に備えてSystem.Web.Mvc.dllにあります)をインスタンス化することができますが、それはあなたのコントローラが他のものを評価するのを魔法のようには止めませんこの後。呼び出し元のコントローラを変更できる場合は、呼び出し元の他のメソッドからリダイレクトアクション(または他のActionResults)を返すようにしたいと思うでしょう。 – UtopiaLtd

関連する問題