我们在使用AuthenticateRequest进行自定义控件时遇到问题: 为了保持信息,我们正在使用 HttpContext.Current.Application。
对于各种原因,如果多个用户同时工作,则这种方式不正常,因为应用程序密钥不是最终确定的。
问题:持久性发生在AuthenticateRequest事件中,据我所知,无法访问Session。我搜索了一下,发现了PostAuthenticateRequest事件以及有关差异的描述:http://leastprivilege.com/2006/07/02/authenticaterequest-vs-postauthenticaterequest/
可悲的是,我仍然无法访问Session,HttpApplication会抛出错误:
{"Session state is not available in this context."}
并且HttpApplication.Context.Session一直变为NULL。
有没有可能在这一点上获得会议?或者是否有我可以使用的另一个事件,它将起到同样的作用?
提前致谢。
马蒂亚斯
Edith:我发现在MapRequestHandler(Header set)和PostMapRequestHandler(Header未设置)之间丢失了Header
答案 0 :(得分:1)
您的问题是PostAuthenticateRequest发生在管道中的早期,即调用AcquireRequestState之前。为了访问会话状态,您需要执行该事件,并且应该在生命周期的后期查看事件。如果您不熟悉事件序列,请查看here ...