SessionStateStoreProviderBase SessionStateStoreProviderBase SessionStateStoreProviderBase SessionStateStoreProviderBase Class

定義

データ ストアのセッション状態プロバイダーに必要なメンバーを定義します。Defines the required members of a session-state provider for a data store.

public ref class SessionStateStoreProviderBase abstract : System::Configuration::Provider::ProviderBase
public abstract class SessionStateStoreProviderBase : System.Configuration.Provider.ProviderBase
type SessionStateStoreProviderBase = class
    inherit ProviderBase
Public MustInherit Class SessionStateStoreProviderBase
Inherits ProviderBase
継承
SessionStateStoreProviderBaseSessionStateStoreProviderBaseSessionStateStoreProviderBaseSessionStateStoreProviderBase

セッション状態ストア プロバイダーの実装の例は、次を参照してください。セッション状態ストア プロバイダーを実装するします。For an example of a session-state store provider implementation, see Implementing a Session-State Store Provider.

次のコード例では、カスタム セッション状態ストア プロバイダーを使用するように構成された ASP.NET アプリケーションの Web.config ファイルを示します。The following code example shows the Web.config file for an ASP.NET application that is configured to use a custom session-state store provider.

<configuration>  
  <connectionStrings>  
    <add name="OdbcSessionServices" connectionString="DSN=SessionState;" />  
  </connectionStrings>  

  <system.web>  
    <sessionState   
      mode="Custom"  
      customProvider="OdbcSessionProvider">  
      <providers>  
        <add name="OdbcSessionProvider"  
             type="Samples.AspNet.Session.OdbcSessionStateStore"  
             connectionStringName="OdbcSessionServices" />  
      </providers>  
    </sessionState>  
  </system.web>  
</configuration>  

注釈

ASP.NET セッション状態を読み取ってから、セッション状態を使用してデータ ストアにセッション データ ストア プロバイダーを書き込みます。ASP.NET session state reads and writes session data from and to a data store using a session-state store provider. セッション状態ストア プロバイダーは、継承するクラス、SessionStateStoreProviderBase抽象クラスと上書きデータに固有の実装では、そのメンバーを格納します。A session-state store provider is a class that inherits the SessionStateStoreProviderBase abstract class and overrides its members with implementations specific to the data store. セッション状態ストア プロバイダーを呼び出して、SessionStateModuleセッション変数とタイムアウト値などの関連のセッション情報の取得と、ストレージのデータ ストアとの通信に、ASP.NET ページの処理中にクラス。The session-state store provider is called by the SessionStateModule class during the processing of an ASP.NET page to communicate with the data store for the storage and retrieval of session variables and related session information such as the time-out value.

各 ASP.NET アプリケーション内でセッション データがごとに個別に格納されているSessionIDプロパティ。Session data within each ASP.NET application is stored separately for each SessionID property. ASP.NET アプリケーションは、セッション データを共有していません。ASP.NET applications do not share session data.

カスタムを指定するSessionStateStoreProviderBaseを設定して ASP.NET アプリケーションの実装、modeの属性、sessionState構成要素をCustomcustomProvider属性をカスタムのプロバイダーの名前にこのトピックの例に示します。You can specify a custom SessionStateStoreProviderBase implementation for an ASP.NET application by setting the mode attribute of the sessionState configuration element to Custom and the customProvider attribute to the name of the custom provider, as shown in the example for this topic.

セッション ストア データのロックLocking Session Store Data

ASP.NET アプリケーションは、同時実行要求に応答をサポートするマルチ スレッド、ために、同時要求が同じセッションの情報にアクセスしようとする可能性があることができます。Because ASP.NET applications are multithreaded to support responding to concurrent requests, it is possible that concurrent requests might attempt to access the same session information. すべてのフレーム セット内の複数のフレームが同じアプリケーションをアクセス シナリオを検討してください。Consider a scenario where multiple frames in a frameset all access the same application. フレーム セット内の各フレームの個々 の要求は、異なるスレッドで同時に Web サーバーで実行できます。The separate requests for each frame in the frameset can be executed on the Web server concurrently on different threads. 各フレームのソースの ASP.NET ページは、セッション状態変数にアクセスする場合は、セッション ストアへのアクセスを同時に複数のスレッドをある可能性があります。If the ASP.NET pages for each frame source access session-state variables, then you could have multiple threads accessing the session store concurrently.

予期しないセッション状態の動作をセッション ストアにあるデータの競合を避けるため、SessionStateModuleSessionStateStoreProviderBaseクラスには、特定のセッションの実行中のセッション ストアの項目を排他的ロックのロック機能が含まれます、。ASP.NET ページの実行。To avoid data collisions at the session store and unexpected session-state behavior, the SessionStateModule and SessionStateStoreProviderBase classes include lock functionality that exclusively locks the session store item for a particular session for the duration of the execution of an ASP.NET page. 注意してください、EnableSessionState属性がマークReadOnly、同じアプリケーションの場合は、他の ASP.NET ページは、可能性がありますでもデータ ストアから、最終的に待つ読み取り専用のセッションの要求にするデータがロックされているため、セッション ストアへの書き込みできる可能性があります解放されます。Note that even if the EnableSessionState attribute is marked as ReadOnly, other ASP.NET pages in the same application might be able to write to the session store, so a request for read-only session data from the store might still end up waiting for locked data to be freed.

セッション ストア データへの呼び出しで、要求の開始時に、ロックが設定されて、GetItemExclusiveメソッド。A lock is set on session-store data at the beginning of the request, in the call to the GetItemExclusive method. 呼び出し中にロックが解除要求が完了したら、SetAndReleaseItemExclusiveメソッド。When the request completes, the lock is released during the call to the SetAndReleaseItemExclusive method.

場合、SessionStateModuleオブジェクトの呼び出し中にいずれかのセッションがロックされているデータを検出すると、GetItemExclusiveまたはGetItemメソッドに再要求セッション データ 0.5 秒間隔で、ロックが解放されるかを時間の長さまで、セッション データがロックされての値を超える、ExecutionTimeoutプロパティ。If the SessionStateModule object encounters locked session data during the call to either the GetItemExclusive or the GetItem method, it will re-request the session data at half-second intervals until either the lock is released or the amount of time that the session data has been locked exceeds the value of the ExecutionTimeout property. 実行タイムアウトを超過した場合、SessionStateModuleオブジェクトが呼び出す、ReleaseItemExclusiveセッション ストア データを解放して、その時点でセッション ストア データを要求するメソッド。If the execution time out is exceeded, the SessionStateModule object will call the ReleaseItemExclusive method to free the session-store data and request the session-store data at that time.

セッション ストアがロックされているため、データへの呼び出しによって解放される可能性があります、ReleaseItemExclusiveメソッドを呼び出す前に別のスレッドで、SetAndReleaseItemExclusiveメソッド、現在の応答がでした試行を設定し、セッション状態ストアのデータを持つリリース既にリリースされ、別のセッションで変更します。Because locked session-store data might have been freed by a call to the ReleaseItemExclusive method on a separate thread before the call to the SetAndReleaseItemExclusive method for the current response, an attempt could be made to set and release session-state store data that has already been released and modified by another session. このような状況を回避するために、GetItemGetItemExclusiveメソッドは、ロックの識別子を返します。To avoid this situation, the GetItem and GetItemExclusive methods return a lock identifier. このロックの識別子をロックされたセッション ストア データを変更するには、各要求に含めることがあります。This lock identifier must be included with each request to modify locked session-store data. セッション ストア データを変更すると、データ ストアでロック識別子によって指定されたロック識別子に一致する場合にのみ、SessionStateModuleします。Session-store data is modified only if the lock identifier in the data store matches the lock identifier supplied by the SessionStateModule.

有効期限が切れたセッション ストア データを削除します。Deleting Expired Session Store Data

ときに、Abandon特定のセッションのメソッドは、そのセッションのデータが使用して、データ ストアから削除、RemoveItemメソッドは、データをセッションの後の要求のセッション データ ストアに保持は、それ以外の場合。When the Abandon method is called for a particular session, the data for that session is deleted from the data store using the RemoveItem method; otherwise, the data will remain in the session data store to server future requests for the session. SessionStateStoreProviderBase有効期限が切れたセッション データを削除する実装。It is up to the SessionStateStoreProviderBase implementation to delete expired session data.

コンストラクター

SessionStateStoreProviderBase() SessionStateStoreProviderBase() SessionStateStoreProviderBase() SessionStateStoreProviderBase()

SessionStateStoreProviderBase クラスの新しいインスタンスを初期化します。Initializes a new instance of the SessionStateStoreProviderBase class.

メソッド

CreateNewStoreData(HttpContext, Int32) CreateNewStoreData(HttpContext, Int32) CreateNewStoreData(HttpContext, Int32) CreateNewStoreData(HttpContext, Int32)

現在の要求で使用する SessionStateStoreData オブジェクトを新規作成します。Creates a new SessionStateStoreData object to be used for the current request.

CreateUninitializedItem(HttpContext, String, Int32) CreateUninitializedItem(HttpContext, String, Int32) CreateUninitializedItem(HttpContext, String, Int32) CreateUninitializedItem(HttpContext, String, Int32)

新しいセッション状態項目をデータ ストアに追加します。Adds a new session-state item to the data store.

Dispose() Dispose() Dispose() Dispose()

SessionStateStoreProviderBase の実装によって使用されているすべてのリソースを解放します。Releases all resources used by the SessionStateStoreProviderBase implementation.

EndRequest(HttpContext) EndRequest(HttpContext) EndRequest(HttpContext) EndRequest(HttpContext)

要求の最後に SessionStateModule オブジェクトによって呼び出されます。Called by the SessionStateModule object at the end of a request.

Equals(Object) Equals(Object) Equals(Object) Equals(Object)

指定したオブジェクトが、現在のオブジェクトと等しいかどうかを判断します。Determines whether the specified object is equal to the current object.

(Inherited from Object)
GetHashCode() GetHashCode() GetHashCode() GetHashCode()

既定のハッシュ関数として機能します。Serves as the default hash function.

(Inherited from Object)
GetItem(HttpContext, String, Boolean, TimeSpan, Object, SessionStateActions) GetItem(HttpContext, String, Boolean, TimeSpan, Object, SessionStateActions) GetItem(HttpContext, String, Boolean, TimeSpan, Object, SessionStateActions) GetItem(HttpContext, String, Boolean, TimeSpan, Object, SessionStateActions)

セッション データ ストアから読み取り専用のセッション状態データを返します。Returns read-only session-state data from the session data store.

GetItemExclusive(HttpContext, String, Boolean, TimeSpan, Object, SessionStateActions) GetItemExclusive(HttpContext, String, Boolean, TimeSpan, Object, SessionStateActions) GetItemExclusive(HttpContext, String, Boolean, TimeSpan, Object, SessionStateActions) GetItemExclusive(HttpContext, String, Boolean, TimeSpan, Object, SessionStateActions)

セッション データ ストアから読み取り専用のセッション状態データを返します。Returns read-only session-state data from the session data store.

GetType() GetType() GetType() GetType()

現在のインスタンスの Type を取得します。Gets the Type of the current instance.

(Inherited from Object)
Initialize(String, NameValueCollection) Initialize(String, NameValueCollection) Initialize(String, NameValueCollection) Initialize(String, NameValueCollection)

構成ビルダーを初期化します。Initializes the configuration builder.

(Inherited from ProviderBase)
InitializeRequest(HttpContext) InitializeRequest(HttpContext) InitializeRequest(HttpContext) InitializeRequest(HttpContext)

要求ごとの初期化のために、SessionStateModule オブジェクトによって呼び出されます。Called by the SessionStateModule object for per-request initialization.

MemberwiseClone() MemberwiseClone() MemberwiseClone() MemberwiseClone()

現在の Object の簡易コピーを作成します。Creates a shallow copy of the current Object.

(Inherited from Object)
ReleaseItemExclusive(HttpContext, String, Object) ReleaseItemExclusive(HttpContext, String, Object) ReleaseItemExclusive(HttpContext, String, Object) ReleaseItemExclusive(HttpContext, String, Object)

セッション データ ストアの項目のロックを解除します。Releases a lock on an item in the session data store.

RemoveItem(HttpContext, String, Object, SessionStateStoreData) RemoveItem(HttpContext, String, Object, SessionStateStoreData) RemoveItem(HttpContext, String, Object, SessionStateStoreData) RemoveItem(HttpContext, String, Object, SessionStateStoreData)

セッション データ ストアから項目データを削除します。Deletes item data from the session data store.

ResetItemTimeout(HttpContext, String) ResetItemTimeout(HttpContext, String) ResetItemTimeout(HttpContext, String) ResetItemTimeout(HttpContext, String)

セッション データ ストアの項目の有効期限の日時を更新します。Updates the expiration date and time of an item in the session data store.

SetAndReleaseItemExclusive(HttpContext, String, SessionStateStoreData, Object, Boolean) SetAndReleaseItemExclusive(HttpContext, String, SessionStateStoreData, Object, Boolean) SetAndReleaseItemExclusive(HttpContext, String, SessionStateStoreData, Object, Boolean) SetAndReleaseItemExclusive(HttpContext, String, SessionStateStoreData, Object, Boolean)

現在の要求の値を使用してセッション状態データ ストアのセッション項目の情報を更新し、データのロックを解除します。Updates the session-item information in the session-state data store with values from the current request, and clears the lock on the data.

SetItemExpireCallback(SessionStateItemExpireCallback) SetItemExpireCallback(SessionStateItemExpireCallback) SetItemExpireCallback(SessionStateItemExpireCallback) SetItemExpireCallback(SessionStateItemExpireCallback)

Global.asax ファイルに定義されている Session_OnEnd イベントの SessionStateItemExpireCallback デリゲートへの参照を設定します。Sets a reference to the SessionStateItemExpireCallback delegate for the Session_OnEnd event defined in the Global.asax file.

ToString() ToString() ToString() ToString()

現在のオブジェクトを表す文字列を返します。Returns a string that represents the current object.

(Inherited from Object)

プロパティ

Description Description Description Description

管理ツールまたは他のユーザー インターフェイス (UI) での表示に適した、簡単でわかりやすい説明を取得します。Gets a brief, friendly description suitable for display in administrative tools or other user interfaces (UIs).

(Inherited from ProviderBase)
Name Name Name Name

構成時にプロバイダーを参照するために使用される表示名を取得します。Gets the friendly name used to refer to the provider during configuration.

(Inherited from ProviderBase)

適用対象

こちらもご覧ください