1

以下は、数か月前にブログで尋ねた質問ですが、まだ適切な回答が得られていません。それから数日前、私は答えを持っているかどうか尋ねられたので、ここに質問をコピーすることにしました. とにかく、ここに行く...


私は、 AJAX コントロール ツールキットコントロールを利用してアプリケーションの使いやすさを拡張するASP.NET Web アプリケーションに取り組んできました。さらに、このアプリケーションは、暗号化、認証、承認などのセキュリティを必要とする本格的なビジネス アプリケーションです。また、HTTP セッションは、デフォルトの 20 分で期限切れになる InProc モードのセッションです。

これはもちろん、ユーザーがブラウザで 20 分以上ページを離れた場合、セッションが期限切れになり、サーバーへの投稿がブラウザをサインイン ページにリダイレクトすることを意味します。ただし、たとえば、ページにAJAX コントロール ツールキットのAutoCompleteExtenderコントロールが含まれている場合、ユーザーはブラウザーに戻ってエクステンダーの機能を使用し始め、バックグラウンドでコールバックが必要になる可能性がありますが、コントロールが単にそうではないことに気付くでしょう。動作 - サインイン ページへのリダイレクトではなく、エラーは発生しません!?


私が言ったように、解決策がないので、すべてのページ (MasterPage 内) にSessionExpiredMonitor (Herr Zifferによる) を配置することになりました。これにより、すべてのページが 19 分で自動サインアウトし、ブラウザーをサインインページ。しかし、これでは解決できないので、わかる方いましたら教えてください。どうもありがとうございました。

4

3 に答える 3

1

サーバー側では、セッションの有効期限が切れていることを検出し、厳密に型指定された例外を返すことができます。ブラウザー側では、そのエラーを具体的に検出し、ページを更新するだけです。これは、アプリケーションが期限切れのセッションを検出し、再度ログインさせる更新のためにページがポストバックされることを前提としています。

于 2008-11-02T20:15:44.623 に答える
0

セッションが実際に期限切れになった後にユーザーをログインページにリダイレクトすることの何が問題になっていますか? ユーザーの観点からは、期限切れのセッションに気付かず、長すぎるフォームに記入し、送信時に実際に期限切れに気付くよりも、これを本当に好みます。これは、少なくとも問題に対する非常にユーザーフレンドリーなソリューションです。

于 2008-11-02T23:37:28.833 に答える
0

主に明らかなセキュリティ上の理由から、自動リダイレクトが望ましい解決策だと思います。

非アクティブ状態が 18 分続いた後にユーザーに警告を表示して、セッションが 1 分で期限切れになることを警告し、ボタンをクリックしてセッションを延長する方法を提供することで、機能をさらに拡張できます。セッション。

セッションが期限切れになり、ページがユーザーをログイン ページにリダイレクトする直前に、ユーザー / ページ / アカウントのステータスを保存して、再度ログインしたときに最後に表示したページにリダイレクトできるようにすることができます。

于 2008-11-03T17:29:05.160 に答える