在一个 HttpModule 中,我将一个 Item 放在 Context 中,如下所示:
HttpContext.Current.Items.Add("MyKey", "Hello world!");
直接在此代码下(仍在模块内),我可以从集合中检索此字符串,因此我知道它已添加。
快进到我的实际处理程序(Web 表单——.aspx)。我试图取回这个项目:
string myString = HttpContext.Current.Items["MyKey"].ToString();
可悲的是,它是 NULL - 该项目不存在。
我旋转了集合,当它到达我的处理程序时,Items 集合有两个键:
- 会话
- AspSessionIDManagerInitializeRequestCalled
在模块中设置 Item 后,我调用 RewritePath。不确定这是否与它有关。