2009-05-11 9 views
1

私はユーザーログイン用のセッションを維持しています。ログイン後、前のページ(セッションが期限切れになっている)にユーザーをリダイレクトする方法はありますか?

ユーザーが自分のアカウント資格情報でpage20で作業しているとします。 彼はセッション変数のタイムアウトのためにアイドルです。その後、彼はpage20で作業を始め、page21のリンクをクリックします。ここでセッションは期限切れになり、Loginページにリダイレクトされます。

ログインに成功した後、ユーザーはページ21にリダイレクトする必要があります。

どうすれば達成できますか?

+0

参照http://stackoverflow.com/questions/847232/how-do-i-use-server-transfer-method-in-asp-net-mvc/847245#847245 –

答えて

2

最初に気になる方法は、取得/ポスト変数を通じて情報を送信することです。ページ21のセッションチェックを実行してユーザをログインページにリダイレクトすると、アドレスにページネームを追加することができます。つまり、www.xyz.com/login.htm?page21(またはifページ名を表示したくない場合は、代わりに投稿を使用してください)。その後、ユーザーが再びログインしたときにその情報を使用して、ページ21にリダイレクトします。

希望に役立ちます。

0

Request.UrlreferrerよりもログインページへのServer.Transferを実行している場合、Page21のURLになります。

2

フォーム認証を使用している場合は、それを行うための組み込みのメカニズムがあります。ユーザーを自動的にURLリファラーページにリダイレクトします。

+0

注:FrameworkManager.Authenticateは社内のものですとしょうかん。私はちょうど認証条件の真実であることの簡単なデモのためにそれを置く。 – Vikram

1

本当にセッションをどのように使用しているかによって異なります。ユーザーがセッション1〜20の画面に入力するすべての情報を保持している場合は、セッションの有効期限が切れるとすべて失われますので、とにかく不運になります。

データベースの各ページのすべてを保存する場合や、その他のメカニズムを使用する場合は、ユーザーが最後に入力した情報を簡単に伝える必要があります。あるいは、ユーザがデータベースに提出した最後のページのURLまたは名前を格納することもできます。

ログインするときに、どのページを表示するかを決めたら、それらのページをリダイレクトするだけです。

0

このコードはどこに記入しますか?

その後、(FrameworkManager.Authenticate(ユーザー名、PWD))次に
System.Web.Security.FormsAuthentication.RedirectFromLoginPage(ユーザー名、リメンバー・ミー) 終了

-1

場合、ユーザが別のブラウザを使用して再度ログインしようとする場合であれば中この状況では、データベースにステータス列を追加し、ステータスがtrueであることを確認する必要があります。 このユーザーを最後に訪問したページにリダイレクトする必要があります。クッキーを使用して訪問ページを保存し、ページ名を戻してページにリダイレクトします。

+0

質問はセッションが期限切れであったのに対して、別のブラウザでログインすることではありませんでした。私は混乱しています、あなたは何を推薦していますか?ブール状態の列をデータベースに追加することはできますか?ここに「真実」は何を表していますか?ユーザーが何かをするたびに更新されますか?どのようにセッションが終了するのかをどのように知っていますか?ユーザーが別のページに移動するたびにCookieを設定して更新すると、最後に訪問したページへのリダイレクトが機能するはずですが、DBにも保存してください。 –

関連する問題