SessionStateUtility.RaiseSessionEnd(IHttpSessionState, Object, EventArgs) Método
Definição
Executa o evento Session_OnEnd definido no arquivo Global.asax para o aplicativo ASP.NET.Executes the Session_OnEnd event defined in the Global.asax file for the ASP.NET application.
public:
static void RaiseSessionEnd(System::Web::SessionState::IHttpSessionState ^ session, System::Object ^ eventSource, EventArgs ^ eventArgs);
public static void RaiseSessionEnd (System.Web.SessionState.IHttpSessionState session, object eventSource, EventArgs eventArgs);
static member RaiseSessionEnd : System.Web.SessionState.IHttpSessionState * obj * EventArgs -> unit
Public Shared Sub RaiseSessionEnd (session As IHttpSessionState, eventSource As Object, eventArgs As EventArgs)
Parâmetros
- session
- IHttpSessionState
A instância IHttpSessionState de implementação para a sessão que foi encerrada.The IHttpSessionState implementation instance for the session that has ended.
- eventSource
- Object
O objeto de origem do evento a fornecer para o evento Session_OnEnd.The event source object to supply to the Session_OnEnd event.
- eventArgs
- EventArgs
O objeto EventArgs a fornecer ao evento Session_OnEnd.The EventArgs object to supply to the Session_OnEnd event.
Exemplos
O exemplo de código a seguir mostra o manipulador para o ReleaseRequestState evento em um módulo de estado de sessão personalizado.The following code example shows the handler for the ReleaseRequestState event in a custom session-state module. Se a sessão tiver sido abandonada, o módulo executará o evento Session_OnEnd definido no arquivo global. asax para o aplicativo usando o RaiseSessionEnd método.If the session has been abandoned, the module executes the Session_OnEnd event defined in the Global.asax file for the application using the RaiseSessionEnd method. Este exemplo de código faz parte de um exemplo maior fornecido para a SessionStateUtility classe.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
Comentários
O RaiseSessionEnd método é usado por um módulo de estado de sessão para executar o evento Session_OnEnd definido no arquivo global. asax para um aplicativo ASP.net.The RaiseSessionEnd method is used by a session-state module to execute the Session_OnEnd event defined in the Global.asax file for an ASP.NET application. Um módulo de estado de sessão chamará o RaiseSessionEnd método quando uma sessão for abandonada ou se a sessão expirar.A session-state module will call the RaiseSessionEnd method when a session has been abandoned, or if the session expires.