ASP.NET メンバーシップ API を使用します。これにより、非アクティブなセッションが自動的にログアウトされます。この自動ログアウトはしたくありません。指定した時間の経過後に ajax でページを呼び出すなど、いくつかの回避策を使用しました。または、セッションをアクティブに保つために iframe メソッドを使用しました。しかし、これは私のニーズにうまく適合しません。このログアウト機能を完全に無効にしたい。
私 の質問は、この記事への回答でした。
セッション タイムアウトの増加が常に機能するとは限らない
一見すると、C# ASP .NET の web.config ファイルでセッション タイムアウト値を大きくすると、問題が解決するはずです。以下の行でタイムアウト値を 60 分に変更すると、ユーザーは 60 分間 Web アプリケーション セッションにログインしたままになると想定できます。
<authentication mode="Forms">
<forms name="MyAuth" timeout="60" protection="All" loginUrl="~/Web/Login.aspx" slidingExpiration="true" />
</authentication>
<sessionState mode="InProc" cookieless="false" timeout="60" />
しかし、実際にはこれには 2 つの問題があります。最初の問題は、タイムアウト値を 1 時間以上に設定すると、IIS がセッションの間すべてのセッション メモリを保持するため、サーバーに保持されるメモリが過剰になることです。トラフィックの多いサイトで 5 時間のタイムアウト値があり、数千のユーザー セッションのすべてのセッション データを保持しているとします。2 番目の問題は、アプリケーションのテスト時に発生する可能性があります。多くの場合、Web アプリケーションはわずか 15 分後にタイムアウトします。正確には何が起こっているのですか?問題は実際には IIS で設定されたセッション タイムアウトまたは接続タイムアウトのプロパティ (共有ホスティングの場合は、アクセスできない場合もあります) の値である可能性がありますが、セッション タイムアウトを制御する必要があることは明らかです。私たち自身の手。