0

奇妙なシナリオがあります。ちゃんと働いてforms authenticationます。保護されたページがフォルダー内にあり、それらに移動すると、ログイン ページにリダイレクトさURLれ、querystring. ここまでは順調ですね。しかし、検索結果ページであるページが 1 つあります。ユーザーがログインしていない場合、ページのデータの一部を非表示にする必要がありますが、ページの残りの部分は通常どおり表示できます。

認証済みのデータのみでパネルを非表示にするためにいくつかのトリックを行いましたが、正常に動作します。私が抱えている問題は、ユーザーが検索プロセス (複数ステップ) を実行し、結果が表示された後にログインしたい場合、ページの上部にあるログイン リンクをクリックする必要があることです。これにより、リターン URL なしでログイン ページが読み込まれます。結局、ユーザーは新しいページ (ログイン ページ) へのリンクをクリックしました。ログイン情報を送信した後、リファラーが間違っています (現在のログイン ページになります)。

したがって、保護されたフォルダーに対して非常にうまく機能するシステムを台無しにすることなくFormsAuthentication、ユーザーが (保護されていないページから) 自分でログインすることを選択した後、ユーザーを最後の場所に戻すにはどうすればよいでしょうか。これは FormsAuthentication の欠陥ではなく、ソリューションはそれとはまったく関係がない可能性があることを認識しています。いくつかのオプションが必要なだけです。助言がありますか?

4

1 に答える 1

0

あなたはこれを使うことができます

 Request.UrlReferrer.ToString();

前のページのURLが表示されます。

編集1

前のページのURLの検索に関する同様の質問がありますSO

編集2

public Page PreviousPage { get; }

これがmsdnリンクです
http://msdn.microsoft.com/en-us/library/system.web.ui.page.previouspage.aspx?cs-save-lang=1&cs-lang=csharp#code-snippet-1

于 2013-02-06T05:18:24.767 に答える