SessionStateUtility.GetHttpSessionStateFromContext(HttpContext) Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Ruft Sitzungsdaten für die aktuelle Anforderung vom Kontext ab.
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
Der HttpContext, aus dem Sitzungsdaten abgerufen werden sollen.
Gibt zurück
Eine mit Sitzungsdaten von der aktuellen Anforderung gefüllte Instanz der IHttpSessionState-Implementierung.
Beispiele
Das folgende Codebeispiel zeigt den Handler für das ReleaseRequestState Ereignis in einem benutzerdefinierten Sitzungszustandsmodul. Das Modul ruft Sitzungsdaten aus der HttpContext für die aktuelle Anforderung mithilfe der GetHttpSessionStateFromContext -Methode ab. Dieses Codebeispiel ist Teil eines größeren Beispiels, das für die SessionStateUtility-Klasse bereitgestellt wird.
//
// 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 Sitzungszustandsmodul verwendet werden, um Sitzungsdaten aus der aktuellen Anforderung abzurufen. Dies tritt während des Ereignisses ReleaseRequestState am Ende einer Anforderung auf. Die zurückgegebenen Sitzungsdaten können dann in den Sitzungsdatenspeicher geschrieben werden. Wenn die Sitzung abgebrochen wurde, können die Sitzungsdaten aus dem Datenspeicher und HttpContextentfernt werden, und das Session_OnEnd-Ereignis kann ausgeführt werden.
Hinweise für Vererber
Sie können die RemoveHttpSessionStateFromContext(HttpContext) -Methode verwenden, um Sitzungsdaten aus dem internen Speicher zu entfernen, und die RaiseSessionEnd(IHttpSessionState, Object, EventArgs) -Methode, um das Ereignis auszulösen Session_OnEnd
.