HttpSessionState.IsCookieless プロパティ

定義

セッション ID を URL に埋め込むか、HTTP クッキーに格納するかを示す値を取得します。Gets a value indicating whether the session ID is embedded in the URL or stored in an HTTP cookie.

public:
 property bool IsCookieless { bool get(); };
public bool IsCookieless { get; }
member this.IsCookieless : bool
Public ReadOnly Property IsCookieless As Boolean

プロパティ値

Boolean

セッションを URL に埋め込む場合は true。それ以外の場合は falsetrue if the session is embedded in the URL; otherwise, false.

次のコード例では、 cookieless Web.config ファイルで session 属性を true に設定します。The following code example sets the cookieless session attribute to true in the Web.config file.

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

注釈

ASP.NET は、各ブラウザーで一意のセッションを識別します。ASP.NET identifies sessions uniquely with each browser. 既定では、セッションの一意の識別子は、ブラウザーの有効期限が切れていないセッション cookie に格納されます。By default, the unique identifier for a session is stored in a non-expiring session cookie in the browser. cookielessSessionState configuration 要素の属性をに設定することにより、セッション識別子を cookie に格納しないように指定でき true ます。 sessionStateYou can specify that session identifiers not be stored in a cookie by setting the cookieless attribute to true in the sessionState configuration element.

注意

アプリケーションのセキュリティを向上させるには、アプリケーションでユーザーがログアウトできるようにする必要があります。この時点で、ユーザーはメソッドを呼び出す必要があり Abandon ます。To improve the security of your application, your application should allow users to log out, at which point it should call the Abandon method. これにより、URL 内の一意の識別子を使用して、ユーザーのセッションに格納されているプライベートデータを取得するための、望ましくないソースの可能性を減らすことができます。This reduces the potential for an unwanted source using the unique identifier in the URL to retrieve private data stored in the session for a user.

ASP.NET は、一意のセッション ID をページの URL に自動的に挿入することで、cookie なしのセッション状態を維持します。ASP.NET maintains cookieless session state by automatically inserting a unique session ID into the page's URL. たとえば、次の URL は、一意のセッション ID lit3py55t21z5v55vlm25s55 を含むように ASP.NET によって変更されています。For example, the following URL has been modified by ASP.NET to include the unique session ID lit3py55t21z5v55vlm25s55:

http://www.example.com/(S(4danlfat035muve4g0mvgfrr))/orderform.aspx

ASP.NET は、各ページをブラウザーに送信する直前に、リンクにセッション ID 値を埋め込むことで、要求されたすべてのページに含まれるリンクを変更します。ASP.NET modifies the links contained in all requested pages by embedding a session-ID value in the links just before sending each page to the browser. セッション状態は、ユーザーがサイトによって提供されるリンクのパスに従っている限り保持されます。Session state is maintained as long as the user follows the path of links that the site provides. ただし、ユーザーエージェントによって URL が書き換えられた場合、セッション状態のインスタンスは失われます。However, if the user agent rewrites a URL, the session-state instance will be lost.

セッション ID は、アプリケーション名の後、残りのファイルまたは仮想ディレクトリ識別子の前にあるスラッシュの後の URL に埋め込まれます。The session ID is embedded in the URL after the slash that follows the application name and before any remaining file or virtual-directory identifier. これにより、ASP.NET は、要求でを使用する前に、アプリケーション名を解決でき SessionStateModule ます。This allows ASP.NET to resolve the application name before involving the SessionStateModule in the request.

既定では、cookie なしのセッションで使用されるセッション識別子はリサイクルされます。By default, session identifiers used in cookieless sessions are recycled. つまり、期限切れのセッション ID を使用して要求が行われた場合、要求に指定されたセッション ID を使用して新しいセッションが開始されます。That is, if a request is made with a session ID that has expired, a new session is started using the session ID supplied with the request. この動作により、cookie なしのセッション ID を含むリンクが、検索エンジンまたはその他のプログラムによって、複数のブラウザーで共有されている場合に、セッションデータが不要に共有される可能性があります。This behavior can result in the unwanted sharing of session data when a link that contains a cookieless session ID is shared with multiple browsers, perhaps through a search engine or other program. セッション識別子のリサイクルを無効にすることで、複数のクライアントでセッションデータが共有される可能性を減らすことができます。You can reduce the possibility of session data being shared by multiple clients by disabling the recycling of session identifiers. これを行うには、 regenerateExpiredSessionId sessionState構成要素の属性をに設定 true します。To do this, set the regenerateExpiredSessionId attribute of the sessionState configuration element to true. これにより、有効期限が切れたセッション ID でクッキーレスセッション要求が行われたときに、新しいセッション ID が生成されます。This will result in a new session ID being generated when a cookieless session request is made with an expired session ID. 有効期限が切れたセッション ID で作成された要求が HTTP メソッドを使用している場合、 POST regenerateExpiredSessionId ASP.NET は true リダイレクトを実行して URL に新しいセッション識別子があることを確認するため、ポストされたデータはすべて失われます。Note that if the request made with the expired session ID uses the HTTP POST method, then any posted data will be lost when regenerateExpiredSessionId is true, as ASP.NET performs a redirect to ensure that the browser has the new session identifier in the URL.

注意

属性を設定 regenerateExpiredSessionId すると、 true セッションデータが不必要に共有される可能性が低くなりますが、値を取得 SessionID してサーバーへの要求に含めることで、望ましくないソースが別のユーザーのセッションにアクセスすることを防ぐことはできません。While setting the regenerateExpiredSessionId attribute to true reduces the possibility of unwanted sharing of session data, it does not protect against an unwanted source gaining access to the session of another user by obtaining the SessionID value and including it in requests to the server. プライベートまたは機密情報をセッション状態に保存する場合は、SSL を使用して、を含むブラウザーとサーバー間の通信を暗号化することをお勧めし SessionID ます。If you are storing private or sensitive information in session state, it is recommended that you use SSL to encrypt any communication between the browser and server that includes the SessionID.

適用対象

こちらもご覧ください