に応じます。リダイレクトを使~パス
-
09-06-2019 - |
質問
している方法がたいへのリダイレクトにユーザーに戻り、ログインページ内のルートのサポートも組み込まれています。
私が使っている以下のコード:
Response.Redirect("~/Login.aspx?ReturnPath=" + Request.Url.ToString());
この動作しないものです。私の想いASP.NET が自動的に解決するURLのパスです。通常は、私だけの利用
Response.Redirect("../Login.aspx?ReturnPath=" + Request.Url.ToString());
このコードがスターズ-サービスページで実行できるから任意のフォルダです。どうやっていけばいいですか?す。
解決
になると思いまの"~/"に置き換えに"/"していることがでのルート
停もすぐそこ! :-)場合を除きたいhardcodeウェブアプリでのみインストールできるルートのウェブサイトです。
"~/" は 正しいものを使用すが、このオリジナルのコードは動作しなかったとして期待すること ResolveUrl
(内部で使用される Redirect
)を初出場のパスをお渡しでは絶対URL(例えば"**http://server/**foo/bar.htm"か"foo/bar.htm"が、残念なことになるだけで見にコロン文字':'のURLにお願いしますこの場合で見ると、大腸のURLにお願いしまし ReturnPath
クエリ文字列値は、有名なこのための"~/'がない決まります。
に固定する必要がありますURLエンコーディングの ReturnPath
値をエスケープに問題があ':'なり、その他の特殊文字です。
Response.Redirect("~/Login.aspx?ReturnPath=" + Server.UrlEncode(Request.Url.ToString()));
また、うることをお勧めしたもの)を使わない Uri.ToString
なので、人間が読める形式で、ガスタービンビジネスセンター"バージョンのURLは、必ずしも正しいのでunescapesい?代わりに使用Uriです。AbsoluteUri-このように:
Response.Redirect("~/Login.aspx?ReturnPath=" + Server.UrlEncode(Request.Url.AbsoluteUri));
他のヒント
きを解決することができ、URLの最初 に応じます。リダイレクト("~/ログインします。aspx);追加のパラメータになった後に決まります。
何に利用
Response.Redirect(String.Format("http://{0}/Login.aspx?ReturnPath={1}", Request.ServerVariables["SERVER_NAME"], Request.Url.ToString()));