HttpSessionState.IsCookieless プロパティ
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
セッション ID を URL に埋め込むか、HTTP クッキーに格納するかを示す値を取得します。
public:
property bool IsCookieless { bool get(); };
public bool IsCookieless { get; }
member this.IsCookieless : bool
Public ReadOnly Property IsCookieless As Boolean
プロパティ値
セッションを URL に埋め込む場合は true
。それ以外の場合は false
。
例
次のコード例では、 cookieless
Web.config ファイルで session 属性を true に設定します。
<configuration>
<system.web>
<sessionState
mode="InProc"
cookieless="true"
regenerateExpiredSessionId="true"
timeout="30" />
</system.web>
</configuration>
注釈
ASP.NET は、各ブラウザーでセッションを一意に識別します。 既定では、セッションの一意識別子は、ブラウザーの有効期限が切れていないセッション Cookie に格納されます。 セッション識別子を Cookie に格納しないように指定するには、 属性を cookieless
sessionState 構成要素で にtrue
設定します。
注意
アプリケーションのセキュリティを向上させるには、アプリケーションでユーザーがログアウトできるようにし、その時点で メソッドを Abandon 呼び出す必要があります。 これにより、URL の一意の識別子を使用して不要なソースが、ユーザーのセッションに格納されているプライベート データを取得する可能性が低くなります。
ASP.NET は、ページの URL に一意のセッション ID を自動的に挿入することで、Cookie レス セッションの状態を維持します。 たとえば、次の URL は、一意のセッション ID lit3py55t21z5v55vlm25s55 を含むように、ASP.NET によって変更されています。
http://www.example.com/(S(4danlfat035muve4g0mvgfrr))/orderform.aspx
ASP.NET は、各ページをブラウザーに送信する直前に、リンクにセッション ID 値を埋め込むことで、要求されたすべてのページに含まれるリンクを変更します。 ユーザーがサイトが提供するリンクのパスに従っている限り、セッションの状態は維持されます。 ただし、ユーザー エージェントが URL を書き換えると、セッション状態インスタンスは失われます。
セッション ID は、アプリケーション名の後のスラッシュの後、残りのファイルまたは仮想ディレクトリ識別子の前の URL に埋め込まれます。 これにより、ASP.NET 要求に を含める前にアプリケーション名を SessionStateModule 解決できます。
既定では、Cookie レス セッションで使用されるセッション識別子はリサイクルされます。 つまり、有効期限が切れたセッション ID で要求が行われた場合、要求に指定されたセッション ID を使用して新しいセッションが開始されます。 この動作により、Cookie レス セッション ID を含むリンクが検索エンジンやその他のプログラムを介して複数のブラウザーと共有されている場合に、セッション データが不要に共有される可能性があります。 セッション識別子のリサイクルを無効にすることで、セッション データが複数のクライアントで共有される可能性を減らすことができます。 これを行うには、sessionState 構成要素の 属性を に設定regenerateExpiredSessionId
しますtrue
。 これにより、有効期限が切れたセッション ID で Cookie レス セッション要求が行われると、新しいセッション ID が生成されます。 期限切れのセッション ID で行われた要求で HTTP POST
メソッドが使用されている場合、ASP.NET はリダイレクトを実行してブラウザーが URL に新しいセッション識別子を持っていることを確認するため、 が の場合regenerateExpiredSessionId
true
、投稿されたデータはすべて失われることに注意してください。
注意
属性を regenerateExpiredSessionId
に true
設定すると、セッション データが不要に共有される可能性が減りますが、値を取得 SessionID してサーバーへの要求に含めることで、別のユーザーのセッションにアクセスできる望ましくないソースから保護されることはありません。 プライベートまたは機密情報をセッション状態で格納する場合は、SSL を使用して、 を含む SessionIDブラウザーとサーバー間の通信を暗号化することをお勧めします。
適用対象
こちらもご覧ください
.NET