フォーム認証を使用していると思います。あれは正しいですか?その場合、フォーム認証チケットのタイムアウトをセッション タイムアウトと一致させる必要があります。
ユーザーは、最初に思われるよりも複雑なプロセスを経てログインしたままになります。Cookie は、フォーム認証チケットと呼ばれるユーザーのブラウザーに保存されます。ユーザーがセッション タイムアウト制限を超えてアイドル状態のままである場合、サーバーはセッションを破棄します。ただし、次の要求では、フォーム認証チケットが Web サーバーに返されます。サーバーはチケットを検証し、チケットがまだ有効である場合、ユーザーは再度ログインします。
ご覧のとおり、ユーザーのセッションは復元されていません。その動作が必要な場合は、その状態を検出して、自分でセッションを復元する必要があります。
解決策は、フォーム認証チケットのタイムアウトをセッション タイムアウトと同じに設定することです。ここで説明されているように、Web.config ファイルでそれを実現します。
<system.web>
<authentication mode="Forms">
<forms timeout="20"/>
</authentication>
</system.web>
タイムアウト値は分単位です。フォーム認証チケットのタイムアウトに達すると、ユーザーはログアウトされます。これはセッションのタイムアウトとは無関係に動作しますが、それらが同じである場合、それらはほぼ同時に期限切れになります。完全に安全にしたい場合は、フォーム認証チケットのタイムアウトをセッションのタイムアウトより少し短く設定してください。ユーザーは、セッションがタイムアウトする前にログアウトされます。再度ログインすると、新しいセッションが取得されます。古いセッションは、最終的には自動的にタイムアウトします。