次の方法で共有


HttpSessionState.SessionID プロパティ

セッションの一意の識別子を取得します。

名前空間: System.Web.SessionState
アセンブリ: System.Web (system.web.dll 内)

構文

'宣言
Public ReadOnly Property SessionID As String
'使用
Dim instance As HttpSessionState
Dim value As String

value = instance.SessionID
public string SessionID { get; }
public:
property String^ SessionID {
    String^ get ();
}
/** @property */
public String get_SessionID ()
public function get SessionID () : String
適用できません。

プロパティ値

一意のセッション識別子。

解説

SessionID プロパティは、サーバー上のセッション データによってブラウザを一意に識別するために使用します。SessionID 値は ASP.NET がランダムに生成し、ブラウザの無期限のセッション Cookie に格納されます。SessionID 値は、ASP.NET アプリケーションへの各要求と共に Cookie に入れて送信されます。

ASP.NET アプリケーションで Cookie の使用を無効にした状態で、引き続きセッション状態を使用するには、アプリケーションの Web.config ファイルで、sessionState 構成要素の cookieless 属性を true または UseUri に設定して、Cookie の代わりに URL にセッション識別子を格納するようにアプリケーションを設定します。cookieless 属性の UseDeviceProfile の値を指定すると、ASP.NET はブラウザが Cookie をサポートしているかどうかを確認できます。cookieless 属性の AutoDetect の値を指定すると、ASP.NET はブラウザで Cookie が有効になっているかどうかも確認できます。UseDeviceProfile を指定したときに Cookie がサポートされている場合、または AutoDetect を指定したときに Cookie が有効になっている場合、セッション識別子は Cookie に格納され、それ以外の場合にはセッション識別子は URL に格納されます。詳細については、IsCookieless プロパティのトピックを参照してください。

SessionID は、Cookie または URL に含める形でサーバーとブラウザ間をクリア テキストで送信されます。その結果、不適切な接続元が SessionID 値を取得してサーバーへの要求に含めることによって、別のユーザーのセッションにアクセスする可能性もあります。セッション状態に個人情報または機密情報を格納する場合は、SSL を使用してブラウザと SessionID を含むサーバー間のすべての通信を暗号化することをお勧めします。

Cookie ベースのセッション状態を使用する場合、ASP.NET は Session オブジェクトが使用されるまでセッション データのストレージを割り当てません。その結果、セッション オブジェクトがアクセスされるまで、ページ要求ごとに新しいセッション ID が生成されます。アプリケーションがセッション全体に対する静的な ID を必要とする場合は、アプリケーションの Global.asax ファイル内に Session_Start メソッドを実装し、Session オブジェクト内にデータを格納してセッション ID を固定するか、アプリケーションの別の部分のコードを使用して、明示的に Session オブジェクトにデータを格納します。

アプリケーションが Cookie なしのセッション状態を使用する場合、セッション ID は最初のページ ビューで生成され、セッション全体で保持されます。

使用例

セッション状態が Cookie なしのセッション識別子を使用するように Web.config ファイルを構成するコード例を次に示します。詳細については、IsCookieless プロパティのトピックを参照してください。

<configuration>
  <system.web>
    <sessionState 
      cookieless="true"
      regenerateExpiredSessionId="true"
      timeout="30" />
  </system.web>
</configuration>

プラットフォーム

Windows 98,Windows Server 2000 SP4,Windows CE,Windows Millennium Edition,Windows Mobile for Pocket PC,Windows Mobile for Smartphone,Windows Server 2003,Windows XP Media Center Edition,Windows XP Professional x64 Edition,Windows XP SP2,Windows XP Starter Edition

Microsoft .NET Framework 3.0 は Windows Vista,Microsoft Windows XP SP2,および Windows Server 2003 SP1 でサポートされています。

バージョン情報

.NET Framework

サポート対象 : 3.0,2.0,1.1,1.0

参照

関連項目

HttpSessionState クラス
HttpSessionState メンバ
System.Web.SessionState 名前空間

その他の技術情報

セッション状態の概要