SessionStateUtility.GetHttpSessionStateFromContext(HttpContext) SessionStateUtility.GetHttpSessionStateFromContext(HttpContext) SessionStateUtility.GetHttpSessionStateFromContext(HttpContext) SessionStateUtility.GetHttpSessionStateFromContext(HttpContext) Method

Definition

Ruft Sitzungsdaten für die aktuelle Anforderung vom Kontext ab.Retrieves session data from the context for the current request.

public:
 static System::Web::SessionState::IHttpSessionState ^ GetHttpSessionStateFromContext(System::Web::HttpContext ^ context);
public static System.Web.SessionState.IHttpSessionState GetHttpSessionStateFromContext (System.Web.HttpContext context);
static member GetHttpSessionStateFromContext : System.Web.HttpContext -> System.Web.SessionState.IHttpSessionState
Public Shared Function GetHttpSessionStateFromContext (context As HttpContext) As IHttpSessionState

Parameter

context
HttpContext HttpContext HttpContext HttpContext

Der HttpContext, aus dem Sitzungsdaten abgerufen werden sollen.The HttpContext from which to retrieve session data.

Gibt zurück

Eine mit Sitzungsdaten von der aktuellen Anforderung gefüllte Instanz der IHttpSessionState-Implementierung.An IHttpSessionState implementation instance populated with session data from the current request.

Beispiele

Das folgende Codebeispiel zeigt den Handler für das ReleaseRequestState -Ereignis in einem benutzerdefinierten Sitzungs Zustands Modul.The following code example shows the handler for the ReleaseRequestState event in a custom session-state module. Das Modul ruft Sitzungsdaten HttpContext für die aktuelle Anforderung mithilfe der GetHttpSessionStateFromContext -Methode ab.The module retrieves session data from the HttpContext for the current request using the GetHttpSessionStateFromContext method. Dieses Codebeispiel ist Teil eines größeren Beispiels, das für die SessionStateUtility -Klasse bereitgestellt wird.This code example is part of a larger example provided for the SessionStateUtility class.

//
// Event handler for HttpApplication.ReleaseRequestState
//

private void OnReleaseRequestState(object source, EventArgs args)
{
    HttpApplication app = (HttpApplication)source;
    HttpContext context = app.Context;
    string sessionID;

    // Read the session state from the context
    HttpSessionStateContainer stateProvider =
      (HttpSessionStateContainer)(SessionStateUtility.GetHttpSessionStateFromContext(context));

    // If Session.Abandon() was called, remove the session data from the local Hashtable
    // and execute the Session_OnEnd event from the Global.asax file.
    if (stateProvider.IsAbandoned)
    {
        try
        {
            pHashtableLock.AcquireWriterLock(Int32.MaxValue);

            sessionID = pSessionIDManager.GetSessionID(context);
            pSessionItems.Remove(sessionID);
        }
        finally
        {
            pHashtableLock.ReleaseWriterLock();
        }

        SessionStateUtility.RaiseSessionEnd(stateProvider, this, EventArgs.Empty);
    }

    SessionStateUtility.RemoveHttpSessionStateFromContext(context);
}
'
' Event handler for HttpApplication.ReleaseRequestState
'
Private Sub OnReleaseRequestState(ByVal [source] As Object, ByVal args As EventArgs)
    Dim app As HttpApplication = CType([source], HttpApplication)
    Dim context As HttpContext = app.Context
    Dim sessionID As String

    ' Read the session state from the context
    Dim stateProvider As HttpSessionStateContainer = _
       CType(SessionStateUtility.GetHttpSessionStateFromContext(context), HttpSessionStateContainer)

    ' If Session.Abandon() was called, remove the session data from the local Hashtable
    ' and execute the Session_OnEnd event from the Global.asax file.
    If stateProvider.IsAbandoned Then
        Try
            pHashtableLock.AcquireWriterLock(Int32.MaxValue)

            sessionID = pSessionIDManager.GetSessionID(context)
            pSessionItems.Remove(sessionID)
        Finally
            pHashtableLock.ReleaseWriterLock()
        End Try

        SessionStateUtility.RaiseSessionEnd(stateProvider, Me, EventArgs.Empty)
    End If

  SessionStateUtility.RemoveHttpSessionStateFromContext(context)
End Sub

Hinweise

Die GetHttpSessionStateFromContext -Methode kann von einem Sitzungs Zustands Modul verwendet werden, um Sitzungsdaten aus der aktuellen Anforderung abzurufen.The GetHttpSessionStateFromContext method can be used by a session-state module to retrieve session data from the current request. Dieser Fehler tritt während ReleaseRequestState des-Ereignisses am Ende einer Anforderung auf.This occurs during the ReleaseRequestState event at the end of a request. Die zurückgegebenen Sitzungsdaten können dann in den Sitzungsdaten Speicher geschrieben werden.The returned session data can then be written to the session data store. Wenn die Sitzung abgebrochen wurde, können die Sitzungsdaten aus dem Datenspeicher und HttpContextentfernt werden, und das Session_OnEnd -Ereignis kann ausgeführt werden.If the session has been abandoned, the session data can be removed from the data store and HttpContext, and the Session_OnEnd event can be executed.

Hinweise für Vererber

Sie können die RemoveHttpSessionStateFromContext(HttpContext) -Methode verwenden, um Sitzungsdaten aus dem internen Speicher zu entfernen RaiseSessionEnd(IHttpSessionState, Object, EventArgs) , und die- Session_OnEnd Methode, um das-Ereignis zu erhöhen.You can use the RemoveHttpSessionStateFromContext(HttpContext) method to remove session data from the internal store, and the RaiseSessionEnd(IHttpSessionState, Object, EventArgs) method to raise the Session_OnEnd event.

Gilt für: