2012-03-20 3 views
0

ユーザはこのMVC3ウェブサイトにアクセスするには2つの方法があります。セッションタイムアウト時にユーザがどこに来たかにリダイレクトする必要があります

  1. ログイン画面から
  2. 別のウェブサイトからリダイレクトします。

現在、セッションがタイムアウトした場合、セッションタイムアウトページを表示しています。しかし、ビジネスは現在、ユーザーをセッションタイムアウト時にどこに来たかにリダイレクトしたいと考えています。

ユーザーの所在地はどのようにわかりますか?

セッションが終了する頃には、ユーザーが誰だったか分からない。同じユーザーがどちらの場所から来てもかまいませんが、違いはありません。

答えて

0

トリッキー。あなたは認証が必要なページを要求するときに何が起こるかに似たテクニックを使うことができます。その場合、ログインアクションにリダイレクトされますが、元の要求はhttp://localhost/Account/Login?returnUrl={your original request here}というクエリ文字列に追加され、認証後に元の要求ページに移動します。

あなたの場合、ログインページに入っているを現在のセッションに保存し、それをログアウトページへのリンクごとに '?returnUrl ='として追加する必要があります。次に、リダイレクトを処理するコードをログアウトコントローラメソッドに追加する必要があります。

このテクニックは、2つのリダイレクトを必要とするため、(第1段落で説明したように)制限付きの認証済みページへのディープリンクでは機能しません。参照元はその時点で有効ではありません。

+0

hah!ありがとう!あなたはある方向で考え始めました。彼らはクエリ文字列に余分なものを持っていることを受け入れるかどうか見てみましょう。そうでない場合は、要件を削除することができます。 – Dimskiy

関連する問題