0

私は Global.asax.cs の Session_End() にいます

セッションが特定のページで終了した場合にのみ実行する必要がある操作があります。パラメータ (sender と eventArgs) は役に立ちません。ユーザーが最後にいたページを把握する方法はありますか?

前もって感謝します。

4

2 に答える 2

0

リクエストごとにセッションで最後にアクセスしたページの URL を保存できます。そうすれば、セッションが終了すると (global.asax Session_End)、セッションが終了する前にユーザーが最後にアクセスしたページを読み取ることができます。

これは、ほとんどのイベントがリクエストによってトリガーされるためですが、明示的に放棄されない限り、セッションの終了はアクティビティの不足によって引き起こされます。一定期間リクエストがない場合、サーバーによって決定されます。定義上、セッションが終了していることを示すユーザーからの通信はありません。5 分前にブラウザーを閉じた可能性があります。

(これは、セッション状態の HttpSessionState.Mode プロパティ値が InProc の場合のみです。それ以外の場合、イベントは発生しません。)

于 2016-09-14T01:35:29.620 に答える
0

おそらくHttpContext.Requestプロパティを使用できますが、セッションの有効期限が切れた後も有効かどうかはわかりません。

このような場合、ユーザーが新しいページを要求するたびに、ページの URL を Cookie に明示的に書き込む必要があります。そうすれば、セッションが期限切れになっても、Cookie オブジェクトをチェックして、最後に要求されたページを確認できます。

一般的なシナリオでは、セッションが期限切れになると、エンド ユーザーは自分自身を再認証する必要があるため、ログイン ページに直接リダイレクトする必要がありますForms AuthenticationFormsAuthentication.RedirectToLoginPage();

于 2016-09-13T21:38:33.760 に答える