クエリ文字列パラメーターにアクセスして、それをセッション変数に保存しようとしています。私が取り組んでいるソリューションにはいくつかの基本レイアウトがあるため、最も簡単な方法は、これをパイプライン ハンドラーに追加することです。ただし、args.Context.Session が null であるため、私のコードは失敗しています。
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;
}
}
これは、このメソッドが HttpRequestBegin または HttpRequestEnd パイプラインに挿入されたときに発生します。その理由と、ここで使用する標準的な回避策またはパターンがあるかどうかを知りたいです。(はい、null チェックを追加します。それを指摘する必要はありません。)
IIS 7.5 (Integrated .Net 2.0) で Sitecore Sitecore.NET 6.4.1 (rev. 110720) を実行しています。
おそらく関連するリンク: