Définir une variable de session dans Application_BeginRequest
Je suis en utilisant ASP.NET MVC et j'ai besoin de définir une variable de session à Application_BeginRequest
. Le problème est qu'à ce point de l'objet HttpContext.Current.Session
est toujours null
.
protected void Application_BeginRequest(Object sender, EventArgs e)
{
if (HttpContext.Current.Session != null)
{
//this code is never executed, current session is always null
HttpContext.Current.Session.Add("__MySessionVariable", new object());
}
}
- Connexes/une sorte de double de l': stackoverflow.com/questions/765054/...
Vous devez vous connecter pour publier un commentaire.
Essayer AcquireRequestState Mondiale.asax. La Session est disponible dans cet événement qui se déclenche pour chaque demande:
Valamas - Suggéré Edit:
Utilisé ce avec MVC 3 avec succès et évite l'erreur de session.
Vous pourriez peut-être changer de paradigme... peut-être vous pouvez utiliser une autre propriété de l'
HttpContext
classe, plus précisémentHttpContext.Current.Items
comme indiqué ci-dessous:De ne pas la stocker dans la session, mais il sera stocké sur les Articles du dictionnaire de la classe HttpContext et sera disponible pour la durée de cette demande spécifique. Puisque vous êtes à chaque demande, il faudrait vraiment faire plus de sens de la stocker dans une "session" dictionnaire qui, soit dit en passant, c'est exactement ce que les Articles est tout au sujet. 🙂
Désolé pour essayer de déduire de vos besoins au lieu de répondre directement à votre question, mais j'ai été confronté à ce même problème avant et remarqué que ce que je n'a pas besoin de la Session à tous, mais les Éléments de propriété plutôt.
Vous pouvez utiliser la session d'éléments dans Application_BeginRequest de cette façon: