セッション状態のタイムアウトは、このweb.config要素を使用して設定されます
<sessionState mode="InProc" cookieless="false" timeout="120" />
フォーム認証は、このweb.config要素を使用して構成されます
<system.web>
<authentication mode="Forms">
<forms loginUrl="Login.aspx"
protection="All"
timeout="30"
name=".ASPXAUTH"
path="/"
requireSSL="false"
slidingExpiration="true"
defaultUrl="default.aspx"
cookieless="UseDeviceProfile"
enableCrossAppRedirects="false" />
</authentication>
</system.web>
これらの各要素で指定されているタイムアウトの違いは何ですか?両方が異なる場合、どのように機能しますか?
匿名であるかどうかに関係なく、新しいユーザーがWebサイトにアクセスするたびにセッションが開始されます。認証はセッションとはほとんど関係がありません。
認証タイムアウトは、ユーザーのブラウザで認証Cookieが有効である時間です。 Cookieの有効期限が切れると、サイト上の保護されたリソースにアクセスするために再認証する必要があります。
したがって、認証Cookieの前にセッションがタイムアウトした場合、それらは認証されたままですが、すべてのセッション変数が消え、セッションの欠落によって引き起こされるnullやその他の条件をチェックする訓練を受けていない場合、Webサイトでエラーが発生する可能性があります。
セッションの前に認証がタイムアウトした場合、すべてのセッション変数は引き続き存在しますが、再度ログインするまで保護されたリソースにアクセスできません。
予想通り。
例えばセッションが20分後にタイムアウトすると、セッション変数は失われます。ただし、ユーザーは認証によって保護されているページにアクセスできます。
認証がタイムアウトした場合、ユーザーは保護されているページにアクセスできず、セッションの状態は関係ありません。