タイムアウトが 5 分に設定されたフォーム認証を使用する ASP.NET アプリケーションがあります。私のページにはボタンがあり、クリックすると、.svc ファイルで指定されたサービスに存在する操作に対して AJAX 呼び出しが行われます。アプリケーションがタイムアウトしたことをクライアントの javascipt から知るにはどうすればよいですか? または、global.asax; でこれを検出するにはどうすればよいですか。おそらくapplication_beginrequestで?
2 に答える
0
アプローチのバリエーション: 現在のユーザーの認証ステータスを示す JSON 構造を返す特別なページ/ハンドラーを要求することにより、最初に認証の有効期限をチェックする別のクライアント スクリプトを用意します。ユーザーがまだアクティブであることを知った後でのみ、メインの ajax アクションを実行します。これはもう 1 つの要求ですが、タイムアウト ロジックがメインの ajax ロジックと絡まないようにします。「警告、セッションは x 分でタイムアウトします」ポップアップで個別に使用することもできます。
設定方法の詳細については、この質問と私の回答を参照してください。ただし、重要な点は、有効期限のチェックでスライド有効期限を延長したくない場合は、有効期限ページ/ハンドラーを個別に構成する必要があることです。 slideExpiration=false でフォーム認証が設定された仮想ディレクトリ。
于 2012-10-15T15:54:35.297 に答える
0
セッションタイムアウトについて話している場合。これが発生した場合、IHttpSessionState.IsNewSessionプロパティを true に設定する必要があります。
認証タイムアウトについて言及している場合は、AuthenticationTicket の有効期限を確認する必要があります。
于 2012-06-23T11:39:49.607 に答える