HttpSessionState.IsCookieless プロパティ
アセンブリ: System.Web (system.web.dll 内)

セッションを URL に埋め込む場合は true。それ以外の場合は false。

ASP.NET は、ブラウザごとにセッションを一意に識別します。既定では、セッションの一意の識別子はブラウザの無期限のセッション Cookie に格納されます。sessionState 構成要素の cookieless 属性を true に設定すると、セッション識別子が Cookie に保存されないようにすることができます。
![]() |
---|
セキュリティを向上するために、アプリケーションは、ユーザーがログアウトできるようにし、その時点で Abandon メソッドを呼び出す必要があります。これによって、不適切な接続元が URL に一意の識別子を使用して、セッションに格納されたユーザーのプライベート データを取得する危険性を軽減できます。 |
ASP.NET は、ページの URL に自動的に一意のセッション ID を挿入することによって、Cookie なしのセッション状態を維持します。たとえば、次の URL は ASP.NET によって一意なセッション ID (lit3py55t21z5v55vlm25s55) を含むように変更されています。
http://www.example.com/(lit3py55t21z5v55vlm25s55)/orderform.aspx
ASP.NET は、各ページをブラウザに送信する直前に、要求されたすべてのページに含まれるリンクにセッション ID の値を組み込んで変更します。セッション状態は、サイトが提供するリンクのパスをユーザーがたどっている限り保持されます。しかし、ユーザー エージェントが URL を書き換えた場合は、セッション状態のインスタンスが失われます。
セッション ID は、アプリケーション名の後のスラッシュの後、既存ファイルまたは仮想ディレクトリの識別子の前に組み込まれます。これによって、要求に SessionStateModule が関与する前に、ASP.NET がアプリケーション名を解決できます。
既定では、Cookie なしのセッションで使用されるセッション識別子は再利用されます。つまり、有効期限切れのセッション ID を使用して要求が実行されると、要求が提示するセッション ID を使用して新しいセッションが開始されます。この動作により、検索エンジンおよびその他のプログラムを介して複数のブラウザ間で Cookie なしのセッション ID を含んだリンクが共有される場合に、セッション データが不適切に共有される事態が発生することがあります。セッション識別子の再利用を無効にすると、複数のクライアントによるセッション データの共有の可能性を減らすことができます。そのためには、sessionState 構成要素の regenerateExpiredSessionId 属性を true に設定します。これにより、期限切れになったセッション ID を使用して Cookie なしのセッションの要求が行われたときには、新しいセッション ID が生成されるようになります。期限切れになったセッション ID で実行された要求で HTTP の POST メソッドを使用している場合、regenerateExpiredSessionId が true のときにはポストされたデータは失われることに注意してください。これは、ブラウザが URL 内に新しいセッション ID を持つようにするために、ASP.NET がリダイレクトを実行するためです。
![]() |
---|
regenerateExpiredSessionId 属性を true に設定すると、セッション データの不適切な共有の可能性は軽減されますが、不適切な接続元が SessionID 値を取得してサーバーへの要求に含めることにより、別のユーザーのセッションにアクセスすることを防ぐことはできません。セッション状態に個人情報または機密情報を格納する場合は、SSL を使用してブラウザと SessionID を含むサーバー間のすべての通信を暗号化することをお勧めします。 |

Web.config ファイルで cookieless セッション属性を true に設定するコード例を次に示します。
<configuration> <system.web> <sessionState mode="InProc" cookieless="true" regenerateExpiredSessionId="true" timeout="30" /> </system.web> </configuration>

Windows 98, Windows 2000 SP4, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


Weblioに収録されているすべての辞書からHttpSessionState.IsCookieless プロパティを検索する場合は、下記のリンクをクリックしてください。

- HttpSessionState.IsCookieless プロパティのページへのリンク