Jas*_*son 7 asp.net asp.net-mvc session
我的问题与StackOverflow上的问题765054基本相同.我只是再问它,因为接受的答案是不正确的(你无法访问Application_BeginRequest中的会话对象).
我们的用例是我们希望将经过身份验证的用户的用户对象存储在会话中.因此,在后续请求中,我们可以根据会话中的用户对象正确设置IPrincipal和IIdentity.
显然AcquireRequestState是 HttpContext.Current.Session 不为 null 的最早事件。我只是按顺序附加所有这些并进行测试。我更喜欢使用 PreRequestHandlerExecute,它发生在调用控制器上的构造函数之前。
如果您希望将代码放在 Global.asax 中或从 Global.asax 中引用,那么这是相关的。请参阅此页面,了解应用程序生命周期中事件的顺序列表:http://msdn.microsoft.com/en-us/library/ms178473%28v=vs.100%29.aspx
我使用基本控制器并覆盖 OnActionExecuting 执行类似的操作。我不知道这是否是最早可以完成的,但我确实知道它会在执行您的操作之前发生(因此在渲染视图之前)。或者,您可能希望有一个自定义授权属性来执行您想要的操作。这可能是确保它在其他属性运行之前完成的唯一方法。