SessionStateStoreProviderBase SessionStateStoreProviderBase SessionStateStoreProviderBase SessionStateStoreProviderBase Class

Definition

Definiert die erforderlichen Member eines Sitzungszustandsanbieters für einen Datenspeicher.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
Vererbung
SessionStateStoreProviderBaseSessionStateStoreProviderBaseSessionStateStoreProviderBaseSessionStateStoreProviderBase

Beispiele

Ein Beispiel für eine Implementierung eines Sitzungs Zustands Speicher Anbieters finden Sie unter Implementieren eines Sitzungs Zustands Speicher-Anbieters.For an example of a session-state store provider implementation, see Implementing a Session-State Store Provider.

Das folgende Codebeispiel zeigt die Web. config-Datei für eine ASP.NET-Anwendung, die für die Verwendung eines benutzerdefinierten Sitzungs Zustands Speicher-Anbieters konfiguriert ist.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>  

Hinweise

ASP.net der Sitzungs Status liest und schreibt Sitzungsdaten mithilfe eines Sitzungs Zustands Speicher Anbieters aus und in einen Datenspeicher.ASP.NET session state reads and writes session data from and to a data store using a session-state store provider. Ein Sitzungs Zustands Speicher-Anbieter ist eine Klasse, die die SessionStateStoreProviderBase abstrakte-Klasse erbt und deren Member mit speziell für den Datenspeicher spezifischen Implementierungen überschreibt.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. Der Sitzungs Zustands Speicher-Anbieter wird von der SessionStateModule -Klasse während der Verarbeitung einer ASP.NET-Seite aufgerufen, um mit dem Datenspeicher zum Speichern und Abrufen von Sitzungsvariablen und zugehöriger Sitzungsinformationen, wie z. b. dem Timeout Wert, zu kommunizieren.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.

Sitzungsdaten in jeder ASP.NET-Anwendung werden separat für jede SessionID Eigenschaft gespeichert.Session data within each ASP.NET application is stored separately for each SessionID property. ASP.NET-Anwendungen verwenden keine Sitzungsdaten gemeinsam.ASP.NET applications do not share session data.

Sie können eine benutzerdefinierte SessionStateStoreProviderBase Implementierung für eine ASP.NET-Anwendung angeben, mode indem Sie das sessionState -Attribut des Custom -Konfigurations customProvider Elements auf und das-Attribut auf den Namen des benutzerdefinierten Anbieters festlegen, als Dies wird im Beispiel für dieses Thema gezeigt.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.

Sperren von Sitzungs SpeicherdatenLocking Session Store Data

Da ASP.NET-Anwendungen Multithreadanwendungen zur Unterstützung der Reaktion auf gleichzeitige Anforderungen sind, kann es vorkommen, dass gleichzeitige Anforderungen versuchen, auf die gleichen Sitzungsinformationen zuzugreifen.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. Stellen Sie sich ein Szenario vor, in dem mehrere Frames in einem Frameset alle auf dieselbe Anwendung zugreifen.Consider a scenario where multiple frames in a frameset all access the same application. Die separaten Anforderungen für jeden Frame im Frameset können gleichzeitig auf dem Webserver in verschiedenen Threads ausgeführt werden.The separate requests for each frame in the frameset can be executed on the Web server concurrently on different threads. Wenn die ASP.NET-Seiten für jede Frame Quelle auf Sitzungs Zustandsvariablen zugreifen, können mehrere Threads gleichzeitig auf den Sitzungs Speicher zugreifen.If the ASP.NET pages for each frame source access session-state variables, then you could have multiple threads accessing the session store concurrently.

Um Daten Konflikte im Sitzungs Speicher und unerwartetes Sitzungs Zustands Verhalten zu vermeiden, enthalten SessionStateModule die SessionStateStoreProviderBase Klassen und Sperr Funktionen, die das Sitzungs Speicher Element für eine bestimmte Sitzung exklusiv für die Dauer des Ausführung einer ASP.NET-Seite.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. Beachten Sie, dass, EnableSessionState auch wenn das- ReadOnlyAttribut als gekennzeichnet ist, andere ASP.NET-Seiten in der gleichen Anwendung möglicherweise in den Sitzungs Speicher schreiben können. eine Anforderung für schreibgeschützte Sitzungsdaten aus dem Speicher wartet also möglicherweise weiterhin auf die Verwendung der gesperrten Daten. befreiten.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.

Eine Sperre wird für Sitzungs Speicherdaten am Anfang der Anforderung im aufrufungs GetItemExclusive -der-Methode festgelegt.A lock is set on session-store data at the beginning of the request, in the call to the GetItemExclusive method. Wenn die Anforderung abgeschlossen ist, wird die Sperre während des Aufrufes SetAndReleaseItemExclusive der-Methode aufgehoben.When the request completes, the lock is released during the call to the SetAndReleaseItemExclusive method.

Wenn das SessionStateModule -Objekt während des Aufrufes der-Methode GetItemExclusive oder der GetItem -Methode auf gesperrte Sitzungsdaten stößt, werden die Sitzungsdaten in Intervallen von halbsekunden erneut angefordert, bis entweder die Sperre aufgehoben wird oder die Zeitspanne, die der die Sitzungsdaten sind gesperrt und überschreiten den Wert ExecutionTimeout der-Eigenschaft.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. Wenn das Ausführungs Timeout überschritten wird, ruft SessionStateModule das Objekt die ReleaseItemExclusive -Methode auf, um die Sitzungsdaten freizugeben und die Sitzungs Speicherdaten zu diesem Zeitpunkt anzufordern.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.

Da gesperrte Sitzungs Speicherdaten möglicherweise durch einen Aufrufe der ReleaseItemExclusive -Methode in einem separaten Thread freigegeben wurden, bevor der- SetAndReleaseItemExclusive Methode für die aktuelle Antwort aufgerufen wurde, kann versucht werden, Sitzungs Zustands Speicherdaten festzulegen und freizugeben, die wurde bereits von einer anderen Sitzung freigegeben und geändert.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. Um diese Situation zu vermeiden, GetItem geben GetItemExclusive die Methoden und einen Sperr Bezeichner zurück.To avoid this situation, the GetItem and GetItemExclusive methods return a lock identifier. Diese Sperr Kennung muss in jeder Anforderung enthalten sein, um gesperrte Sitzungs Speicherdaten zu ändern.This lock identifier must be included with each request to modify locked session-store data. Sitzungs Speicherdaten werden nur geändert, wenn der Sperr Bezeichner im Datenspeicher mit dem von SessionStateModulebereitgestellten Sperr Bezeichner übereinstimmt.Session-store data is modified only if the lock identifier in the data store matches the lock identifier supplied by the SessionStateModule.

Löschen abgelaufener Sitzungs SpeicherdatenDeleting Expired Session Store Data

Wenn die Abandon -Methode für eine bestimmte Sitzung aufgerufen wird, werden die Daten für diese Sitzung mithilfe der RemoveItem -Methode aus dem Datenspeicher gelöscht. Andernfalls verbleiben die Daten im Sitzungsdaten Speicher, um zukünftige Anforderungen für die Sitzung zu Server.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. Es liegt in der SessionStateStoreProviderBase Implementierung, abgelaufene Sitzungsdaten zu löschen.It is up to the SessionStateStoreProviderBase implementation to delete expired session data.

Konstruktoren

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

Initialisiert eine neue Instanz der SessionStateStoreProviderBase-Klasse.Initializes a new instance of the SessionStateStoreProviderBase class.

Methoden

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

Erstellt ein neues SessionStateStoreData-Objekt, das für die aktuelle Anforderung verwendet werden soll.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)

Fügt dem Datenspeicher ein neues Sitzungszustandselement hinzu.Adds a new session-state item to the data store.

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

Gibt alle von der SessionStateStoreProviderBase-Implementierung verwendeten Ressourcen frei.Releases all resources used by the SessionStateStoreProviderBase implementation.

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

Wird am Ende einer Anforderung vom SessionStateModule-Objekt aufgerufen.Called by the SessionStateModule object at the end of a request.

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

Bestimmt, ob das angegebene Objekt mit dem aktuellen Objekt identisch ist.Determines whether the specified object is equal to the current object.

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

Fungiert als Standardhashfunktion.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)

Gibt schreibgeschützte Sitzungszustandsdaten vom Sitzungsdatenspeicher zurück.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)

Gibt schreibgeschützte Sitzungszustandsdaten vom Sitzungsdatenspeicher zurück.Returns read-only session-state data from the session data store.

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

Ruft den Type der aktuellen Instanz ab.Gets the Type of the current instance.

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

Initialisiert den Konfigurations-Generator.Initializes the configuration builder.

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

Wird vom SessionStateModule-Objekt für die Initialisierung pro Anforderung aufgerufen.Called by the SessionStateModule object for per-request initialization.

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

Erstellt eine flache Kopie des aktuellen 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)

Gibt eine Sperre auf einem Element im Sitzungsdatenspeicher frei.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)

Löscht Elementdaten aus dem Sitzungsdatenspeicher.Deletes item data from the session data store.

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

Aktualisiert das Ablaufdatum und die Ablaufzeit eines Elements im Sitzungsdatenspeicher.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)

Aktualisiert die Sitzungselementinformationen im Speicher für die Sitzungszustandsdaten mit Werten aus der aktuellen Anforderung und löscht die Sperre der Daten.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)

Legt einen Verweis auf den SessionStateItemExpireCallback-Delegaten für das in der Datei Global.asax definierte Session_OnEnd-Ereignis fest.Sets a reference to the SessionStateItemExpireCallback delegate for the Session_OnEnd event defined in the Global.asax file.

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

Gibt eine Zeichenfolge zurück, die das aktuelle Objekt darstellt.Returns a string that represents the current object.

(Inherited from Object)

Eigenschaften

Description Description Description Description

Ruft eine kurze, benutzerfreundliche Beschreibung ab, die für die Anzeige in Verwaltungstools oder anderen Benutzeroberflächen geeignet ist.Gets a brief, friendly description suitable for display in administrative tools or other user interfaces (UIs).

(Inherited from ProviderBase)
Name Name Name Name

Ruft den Anzeigennamen ab, der verwendet wird, um während der Konfiguration auf den Anbieter zu verweisen.Gets the friendly name used to refer to the provider during configuration.

(Inherited from ProviderBase)

Gilt für:

Siehe auch