[セッション状態] 機能ページは、ブラウザー セッション間で情報をどのように保持するかを構成するときに使用します。

UI 要素の一覧

次の表で、機能ページと [操作] ウィンドウで使用できる UI 要素について説明します。

機能ページの要素

要素名説明

[有効でない]

セッション状態を無効にします。

[イン プロセス]

マネージ コード アプリケーション用に、そのアプリケーションの実行場所であるワーカー プロセス内にセッション状態データを保存します。これは既定の設定です。

[カスタム]

ASP.NET アプリケーション用に、カスタム プロバイダーを使用してセッション状態が処理されるように IIS を構成します。

[状態サーバー]

Windows Aspnet_state.exe 状態サービスを有効にし、アプリケーションの実行場所であるワーカー プロセスの外にセッション状態を保存します。この構成の利点は、アプリケーションのワーカー プロセスのリサイクルが行われても、セッション状態が保持されることです。中規模の Web アプリケーションでは、状態サーバーの使用をお勧めします。構成する設定は、次のとおりです。

  • [接続文字列]: 状態サーバーへの接続に使用する接続文字列を設定します。

  • [タイムアウト (秒)]: 接続を維持する時間を秒単位で設定します。既定値は 10 秒です。

重要

アウト プロセスのセッション状態を有効にするには、Windows 状態サービス (Aspnet_state.exe) が実行されている必要があります。既定では、このサービスは ASP.NET のインストール時にインストールされ、手動で開始するように設定されています。開始方法を自動に変更する必要があります。

[SQL Server]

セッション状態データが、アプリケーションの実行場所であるワーカー プロセス内ではなく、SQL Server データベースに保存されるように、IIS を構成します。この構成の利点は、アプリケーションのワーカー プロセスのリサイクルが行われたり、Windows 状態サービスまたは Web サーバーがダウンしても、セッション状態が保持されることです。構成する設定は、次のとおりです。

  • [接続文字列]: 状態サーバーへの接続に使用する接続文字列を設定します。

  • [タイムアウト (秒)]: 接続を維持する時間を秒単位で設定します。既定値は 10 秒です。

重要

セッション状態用に SQL Server を構成する前に、サーバー上で InstallSqlState.sql スクリプトを実行する必要があります。既定では、このスクリプトは <システム ルート>\Microsoft.NET\Framework\V2.0.50727 にあります。

[カスタムデータベースを有効にする]

セッション状態データを格納できるようにカスタムの SQL Server データベースを有効にします。

[モード]

Cookie をどのように使用してセッション状態データを格納するかを定義します。使用できるオプションは、次のとおりです。

  • [自動検出]: ブラウザーで Cookie がサポートされている場合は Cookie を使用します。サポートされていない場合は Cookie を使用しません。Cookie がサポートされていることがわかっているデスクトップ ブラウザーの場合、そのブラウザーで Cookie のサポートが有効になっていれば、ASP.NET は Cookie の使用を試行します。Cookie モードとして 自動検出 を選択した場合は、期限切れになったセッション ID の再生成を要求する必要があります。これにより、Web サーバーでは、トークンを期限切れにしてから再生成できるようになります。こうしておけば、攻撃者がいたとしても、Cookie をキャプチャして Web サーバー コンテンツへのアクセスを獲得するための時間は制限されます。また、タイムアウト値を既定の 20 分より短く変更することも検討する必要があります。

  • [Cookie を使用する]: ユーザーが Web サイトに接続している間、セッション情報をクライアント情報と関連付けます。Cookie は、クライアントと Web サーバーの間で、すべての要求と一緒に HTTP ヘッダー上で渡されます。Cookie にはリダイレクトが不要であるため、Cookie を使用しない場合に比べて、Cookie を使用する方が効率的にセッション状態を追跡することができます。さらに、Cookie を使用すると、ユーザーが Web ページにブックマークを設定できます。また、ユーザーが別のサイトに移動した後に元のサイトに戻った場合にも、状態を保持しておくことができます。

攻撃者がいたとしても、Cookie をキャプチャして Web サイト コンテンツへのアクセスを獲得するための時間が制限されるように、タイムアウト値を既定の 20 分より短く変更することを検討する必要があります。

  • [デバイス プロファイルを使用する]: デバイス プロファイルで Cookie がサポートされている場合は Cookie を使用します。サポートされていない場合は Cookie を使用しません。Cookie をサポートすることがデバイス プロファイルに示されている場合は、ユーザーが Cookie のサポートを無効にしていても、それに関係なく Cookie が使用されます。Cookie モードとして デバイス プロファイルを使用する を選択した場合は、期限切れになったセッション ID の再生成を要求する必要があります。これにより、Web サーバーでは、トークンを期限切れにしてから再生成できるようになります。こうしておけば、攻撃者がいたとしても、Cookie をキャプチャして Web サーバー コンテンツへのアクセスを獲得するための時間は制限されます。また、タイムアウト値を既定の 20 分より短く変更することも検討する必要があります。

  • [URI を使用する]: URI (Uniform Resource Identifier) 要求にクエリ文字列としてセッション ID を埋め込んでから、この URI を要求された元の URL にリダイレクトします。セッションの継続中、この変更された URI 要求が使用されるため、Cookie は不要になります。URI を使用する場合、期限切れになったセッション ID の再生成を要求する必要があります。これにより、Web サーバーでは、トークンを期限切れにしてから再生成できるようになります。こうしておけば、攻撃者がいたとしても、Cookie をキャプチャして Web サーバー コンテンツへのアクセスを獲得するための時間は制限されます。

[名前]

Cookie の名前を設定します。既定値は ASP.NET_SessionID です。

[タイムアウト (分)]

クッキーを維持する時間を分単位で設定します。既定値は 20 分です。

[期限切れのセッション ID の再生成]

対応するアクティブなセッションがデータベースにない場合、セッション ID を拒否してから再発行するように IIS に指定します。この機能は、既定では Cookie を使用しないセッション ID に対してのみサポートされますが、カスタムのセッション ID マネージャーを実装することで、Cookie および任意セッション ID を管理できるように拡張することが可能です。

[偽装にホストの識別情報を使用する]

リモート接続用に Windows 認証およびホスト プロセス ID (ASP.NET または Windows サービス ID のいずれか) を有効にします。

[操作] ウィンドウの要素

要素名説明

[適用]

機能ページで行った変更を保存します。

[キャンセル]

機能ページで行った変更をキャンセルします。

関連項目


目次