Sto tentando di accedere a un parametro stringa di query e di salvarlo in una variabile Session. Poiché la soluzione su cui sto lavorando ha diversi layout di base, l'approccio più semplice sarebbe quello di aggiungerlo a un gestore di pipeline. Tuttavia, il mio codice sta fallendo perché args.Context.Session è nullo:Accesso alla sessione nelle pipeline HttpRequest
public class SaveQueryStringToSession : HttpRequestProcessor
{
public override void Process(HttpRequestArgs args)
{
Assert.ArgumentNotNull((object)args, "args");
string queryString = WebUtil.GetQueryString("parm1");
if (queryString.Length <= 0)
return;
args.Context.Session["parm1"] = queryString;
}
}
Ciò si verifica quando questo metodo viene inserito in entrambi la HttpRequestBegin o HttpRequestEnd pipeline. Curioso di sapere perché e se esiste una soluzione o un modello standard da utilizzare qui. (Sì, vorrei aggiungere un controllo di nulla. Non c'è bisogno di sottolineare che.)
Io corro Sitecore Sitecore.NET 6.4.1 (rev. 110.720) su IIS 7.5 (Integrated Net 2.0)
link Possibilmente rilevanti:
- What is the first global.asax event that Session is accessible assuming the context handler is IRequiresSessionState or IReadOnlySessionState?
- http://intothecore.cassidy.dk/2009/02/session-state-and-integrated-pipeline.html
Sospetto che sia perché Sitecore inserisce HttpModule davanti al modulo SessionState, quindi si sta eseguendo prima della creazione della sessione. – ddysart