Compartir a través de


SessionStateUtility.RemoveHttpSessionStateFromContext(HttpContext) Método

Definición

Quita los datos de sesión del contexto especificado.

public:
 static void RemoveHttpSessionStateFromContext(System::Web::HttpContext ^ context);
public static void RemoveHttpSessionStateFromContext (System.Web.HttpContext context);
static member RemoveHttpSessionStateFromContext : System.Web.HttpContext -> unit
Public Shared Sub RemoveHttpSessionStateFromContext (context As HttpContext)

Parámetros

context
HttpContext

Objeto HttpContext del que se van a quitar los datos de sesión.

Ejemplos

En el ejemplo de código siguiente se muestra el controlador del ReleaseRequestState evento en un módulo de estado de sesión personalizado. El controlador de eventos quita los datos de sesión del objeto actual HttpContext. Este ejemplo de código es parte de un ejemplo más grande proporcionado para la clase SessionStateUtility.

//
// 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

Comentarios

El RemoveHttpSessionStateFromContext método borra los datos de sesión del especificado HttpContext. Un módulo de estado de sesión llamará al RemoveHttpSessionStateFromContext método en el controlador para el ReleaseRequestState evento.

Se aplica a