ASP.NET セッションを区別する必要があります。
<sessionState mode="InProc" customProvider="DefaultSessionProvider" cookieless="UseCookies" regenerateExpiredSessionId="true" timeout="15">
およびフォーム認証:
<authentication mode="Forms">
<forms loginUrl="~/account/login" timeout="2800" />
</authentication>
ASP.NET セッションは、デフォルトで Web サーバーのメモリに保存されます。これの問題は、アプリケーションが Web サーバーによっていつでも再利用またはダウンされる可能性があり、セッションが失われることです。これは、たとえば、サーバーが CPU またはメモリのしきい値に達し、ほとんど制御できない場合に発生する可能性があります。ASP.NET セッションに信頼できる方法で何かを保存する場合は、アウトプロセス状態 (StateServer
または などSqlServer
) を使用していることを確認する必要があります。についての記事はこちらvarious session state modes
。
一方、フォーム認証は、認証されたユーザーを Cookie で追跡するために使用されます。それらはサーバー上で永続化されず、ASP.NET セッションと同じ制限を受けません。アプリケーションで ASP.NET セッションを使用する場合は、そのタイムアウトがフォーム認証 Cookie のタイムアウトと同じであること、およびプロセス外の永続状態を使用していることを確認する必要があります。