2

私のチームは古臭い Web サイトに取り組んでおり、ほとんどのページはまだ ASP クラシックです。ただし、最近、ASP.NET とワイルドカード マッピングを使用したフォーム認証に移行しました。1 つのことを除いて、すべてが驚くほどうまく機能します。ログインしているユーザーのタイムアウトが早すぎることです。ログを調べたところ、人々は 20 分後に正確にタイムアウトしているように見えます (これは、非アクティブのために指定されたタイムアウトです)。

したがって、ASP クラシック ページは、非アクティブ タイマーをリセットするフォーム認証フレームワークのメカニズムを作動させていないという仮説を立てました。私はググって、Great Gu によるワイルドカード マッピングの投稿を読みましたが、この問題を抱えている人をまだ見つけることができません。1) この問題を見たことがありますか? 2) 最善の回避策は何ですか? (バックグラウンドでダム .NET ページをロードするジャンキーな ASP ページごとに隠しフレームを手動で配置する以外は)

更新slideExpirationがtrueに設定されています

また: 非アクティブ状態が 20 分続くとアプリケーションをタイムアウトにする必要があるため、永続的なセッションは使用できません。また、このひどいサイトは通常、インターフェースがページに格納されるように書かれています。JavaScript を挿入できる単純なインターフェイス コードはありません。ページの約 80% で呼び出されるインクルード ファイルにいくつかの js を入れようとしましたが、ファイル ダウンロード バッファで難解な問題が発生したため、別の方法を試す必要があるかもしれません。ありがとう。

4

2 に答える 2

2

永久セッションを作成します。

基本的に、マスター ページまたはナビゲーション ユーザー コントロール (一貫したナビゲーションのために使用しているものは何でも) で JavaScript とイメージ タグを出力することになります。この JavaScript は、ある間隔でイメージ タグのソースを http ハンドラー エンドポイント (いくつかの .aspx、.ashx) に変更し、イメージの応答として 1x1 ピクセルのクリア gif を返します。一定のリクエストにより、アイドルページがセッションを存続させます。

ページに対してブラウザー ウィンドウが開いている限り、ASP.NET セッションがタイムアウトすることはありません。

多くの場合、JavaScript はリクエストに乱数を追加して、ブラウザがリクエストをキャッシュしないようにします。

適切なウォークスルーはこちらから入手できます。

于 2008-09-11T21:56:27.747 に答える
0

Cookie を手動で作成したと仮定しています。その場合、コードのタイムアウト値が構成のタイムアウト値をオーバーライドしている可能性があります。

まず、可能であれば (おそらくそうではないかもしれませんが)、Cookie を手動で作成しないでください。これにより、この頭痛だけでなく、他の多くの問題からも解放されます。

Cookie を手動で作成する必要がある場合は、使用しているタイムアウトが構成ファイルで設定したタイムアウト値を実際に読み取っていることと、スライド有効期限が true に設定されていることを確認してください (これはあなたが言ったとおりです)。

とはいえ、Cookie を手動で作成すると、奇妙なタイムアウトの問題が時々発生します。私が働いている場所では、Cookie を自動的に作成できるようにするソリューションを実装し、タイムアウトはもはや問題ではありませんでした。ただし、他の問題が発生したため、元に戻す必要がありました。

于 2010-01-06T15:00:44.110 に答える