セッションを 20 分を超えて延長する場合は、IIS 管理者を使用してデフォルトを変更するか、web.config ファイルで設定できます。たとえば、web.config でタイムアウトを 60 分に設定するには、次のようにします。
<configuration>
<system.web>
<sessionState timeout="60" />
... other elements omitted ...
</system.web>
... other elements omitted ....
</configuration>
次のコードを使用して、特定のユーザーに対して同じことを行うことができます。
Session.Timeout = 60
どちらの方法を選択しても、タイムアウトを適切と思われる値に変更して、ユーザーが他のことを実行しながらセッションを維持できるようにすることができます。
もちろん、マイナス面もあります。ユーザーにとっては、ブラウザを無人のままにしておくと、他の誰かがブラウザを使用し始めたときにログインしたままになるというセキュリティ上の問題が発生する可能性があります。サーバーのメモリ使用量の問題があります。セッションが長く続くほど、一度に使用するメモリが増えます。それが重要かどうかは、サーバーの負荷によって異なります。
合理的な延長タイムアウトを推測したくない場合は、すでに提案されている他の手法のいずれかを使用する必要があります。ブラウザーで実行されている JavaScript を使用して、定期的にサーバーに ping を送信したり、ページがアンロードされたときにセッションを破棄したりする必要があります。 (もちろん、ユーザーがサイトの別のページに移動しないことが条件です)。