3

セッションが 30 分で期限切れになった Web アプリがあります。クライアント側では、ユーザーがサーバーと対話しようとして、サーバーがユーザー セッションの有効期限が切れていることを検出すると、クライアントは単純にログイン ページにリダイレクトします。

問題は、ユーザーが自分のセッションの有効期限が切れていることを認識せず、クライアント側で作業を続けている(たとえば、メモを書いたり、何かを編集したりする) 場合に、変更をサーバーに送信しようとすると、悪いことが起こり、ブラウザーがログにリダイレクトされることです。ページ内にあり、ユーザー データが失われます。

ユーザーセッションの有効期限が切れたときにデータ損失を防ぐ方法について何か考えはありますか? ありがとう。

4

7 に答える 7

0

ユーザーが自分のセッションでメモを書いたり編集したりしている場合、セッションは期限切れになりません。

サーバーがセッションを存続させ続けるために押す5文字(またはそれ以上)ごとに、キープアライブメッセージをサーバーに簡単に送信できます。

于 2012-12-26T09:52:21.783 に答える
0

セッションタイムアウトを上げることを検討しましたか?30分はかなり短いです。一部のユーザーは、継続的に作業している場合でも、1つのWebフォームに入力するのにそれよりも時間がかかる場合があります。私のセッションタイムアウトは8-10時間です。それらを短くする唯一の理由は、サーバーのスペースを節約することです。それはあなたが本当に抱えている問題ですか?

于 2012-12-26T09:55:29.433 に答える
0

サーバーで何らかのサポートを提供する必要があります。適切な実装は、AJAX呼び出しを介してクライアントからユーザー「ミドルネス」の31分ごとに呼び出されるサーブレットです(セッションの再検証によってセッションが期限切れになるのを防ぐため)。

サーバーでセッションIDが変更されると、そのように応答し、クライアントはある種のメッセージを表示する可能性があります。

より簡単な実装は、ユーザーがログインページにリダイレクトされるように、非アクティブの31分ごとにある種のリロードを起動することです。サーバーで追加のサポートは必要ありませんが、ユーザーフレンドリーではありません。

于 2012-12-26T09:55:41.353 に答える
0

HTML では、29 分後 (JS setTimeout) にアラートを出し、30 分後 (メタ リフレッシュ) に「セッション期限切れ」ページにジャンプすることができます。

于 2012-12-26T10:06:30.040 に答える
0

セッション タイムアウトが短いのには理由があります。

  1. 安全
  2. データ盗難

それらが必要ない場合は、セッションのタイムアウトを延長してください。AJAX callsまたは、セッションを更新するすべての場所に挿入します。

于 2012-12-26T10:01:32.100 に答える
-1

セッションは、ユーザーが30分までアクションを実行しない場合にのみ期限切れになります。ユーザーが30分まで何もしなかった場合、idelセッションの期限切れによってデータが失われることはありません。保持するものはありません。

于 2012-12-26T09:54:40.477 に答える