SessionStateUtility.GetHttpSessionStateFromContext(HttpContext) Méthode
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Récupère les données de session dans le contexte pour la demande actuelle.
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
Paramètres
- context
- HttpContext
HttpContext duquel récupérer les données de session.
Retours
Instance d'implémentation IHttpSessionState remplie avec les données de session provenant de la demande actuelle.
Exemples
L’exemple de code suivant montre le gestionnaire de l’événement ReleaseRequestState dans un module d’état de session personnalisé. Le module récupère les données de session du pour la requête actuelle à l’aide de HttpContext la GetHttpSessionStateFromContext méthode . Cet exemple de code fait partie d’un exemple plus grand fourni pour la SessionStateUtility classe .
//
// 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
Remarques
La GetHttpSessionStateFromContext méthode peut être utilisée par un module d’état de session pour récupérer des données de session à partir de la requête actuelle. Cela se produit pendant l’événement ReleaseRequestState à la fin d’une demande. Les données de session retournées peuvent ensuite être écrites dans le magasin de données de session. Si la session a été abandonnée, les données de session peuvent être supprimées du magasin de données et HttpContext, et l’événement Session_OnEnd peut être exécuté.
Notes pour les héritiers
Vous pouvez utiliser la RemoveHttpSessionStateFromContext(HttpContext) méthode pour supprimer les données de session du magasin interne et la RaiseSessionEnd(IHttpSessionState, Object, EventArgs) méthode pour déclencher l’événement Session_OnEnd
.