SessionStateUtility.RaiseSessionEnd Yöntem
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
ASP.NET uygulaması için Global.asax dosyasında tanımlanan Session_OnEnd olayını yürütür.
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)
Parametreler
- session
- IHttpSessionState
Sona IHttpSessionState eren oturumun uygulama örneği.
- eventSource
- Object
Olaya sağlamak için Session_OnEnd
olay kaynağı nesnesi.
Örnekler
Aşağıdaki kod örneği, özel bir oturum durumu modülünde olayın işleyicisini ReleaseRequestState gösterir. Oturum bırakıldıysa modül, yöntemini kullanarak RaiseSessionEnd uygulama için Global.asax dosyasında tanımlanan Session_OnEnd olayını yürütür. Bu kod örneği, sınıfı için SessionStateUtility sağlanan daha büyük bir örneğin parçasıdır.
//
// 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
Açıklamalar
RaiseSessionEnd yöntemi, bir ASP.NET uygulaması için Global.asax dosyasında tanımlanan Session_OnEnd olayını yürütmek için bir oturum durumu modülü tarafından kullanılır. Oturum durumu modülü, bir oturum bırakıldığında veya oturumun süresi dolarsa yöntemini çağırır RaiseSessionEnd .