12

ajax 呼び出し (具体的には jQuery ajax) を利用するために、かなり集中的な CRUD タイプの ASP.NET ページを書き直そうとしています。これを行う際の私の懸念は、ユーザーがフォーム認証のタイムアウトよりも長くこのページにいる可能性があることです。このため、各 ajax 呼び出しでフォーム認証チケットを拡張する必要があると考えています (基本的に、通常の Web フォーム送信モデルで行う方法)。だから質問:

これは有効な懸念ですか?もしそうなら、フォーム認証のタイムアウトを延長するためのjQueryプラグインを書くことは可能でしょうか? すでに存在しますか?ASP.NET AJAX を使用する方が良い方法でしょうか?

コメント\ヘルプをいただければ幸いです。

4

6 に答える 6

8

jQueryを介してWebサービスまたはページメソッドを呼び出すと、通常のポストバックと同じ方法でASP.NETセッションの有効期限 が延長されることを確認できます。

私はよく5分間のsetInterval()を使用して「キープアライブ」サービスを呼び出します。これにより、ユーザーがアプリケーションをアイドル状態のままにしても、ユーザーのセッションが無期限に保持されます。

于 2008-12-23T19:08:58.253 に答える
1

スクリプト マネージャーなしで MS Ajax を使用し、jQuery を使用して WebMethods を使用できるはずです。詳細はこちら

私の知る限り、WebMethod を呼び出すと、ユーザーのセッション タイムアウトが延長されます。したがって、このアプローチは、両方の長所を備えている可能性があります。

于 2008-12-23T14:41:46.483 に答える
0

Fiddler またはその他のユーティリティを使用して、AJAX 呼び出し間で Cookie が確実に更新されるように Microsoft が賢かったかどうかを確認します。Microsoft の組み込みの asp.net AJAX (実質的に同様) を使用すると、(フォーム認証チケットの自動更新に関して) 運が良くなる可能性があります。

于 2008-12-22T23:15:18.770 に答える
0

フォーム認証は Cookie を介して機能します。Cookie は XMLHttpRequest リクエストで送信されるため、問題はないと思います。

FormsAuthTicket の有効期限が切れ、強制的に login.aspx などにリダイレクトされることに関連する問題があることに注意してください。しかし、それはあなたが話していることとはまったく異なるシナリオです。

于 2008-12-23T15:05:01.507 に答える
-1

あなたが求めていることを完全に理解しているとは思いませんが、jquery ajax タイムアウトに関しては、ajax 呼び出しでローカル タイムアウトを設定できます。

例:

$.ajax('ajax.php',{timeout: 60000},function (data) {
alert(data);
}
于 2008-12-22T18:51:23.920 に答える