Asp.net mvc 如何将数据从IHTTP模块获取到ASP.NET MVC RequestContext?
我有一个自定义IHTTP模块,可以进行身份验证(到Facebook、Myspace等)。它会引发一个事件,可以在HttpApplication实例中处理该事件,并提供有关用户的详细信息。这很像FormsAuthenticationModule引发的OnAuthentication事件 从HttpApplication类中,我应该将我获得的信息放在哪里,以便它可用于ASP.NET MVC管道?我过去常把它放在上下文中。项目字典。但是,我想用(更友好的)HttpContextBase将其放在那里,这样就很容易模拟/注入,而且我的控制器中没有使用HttpContext.CurrentAsp.net mvc 如何将数据从IHTTP模块获取到ASP.NET MVC RequestContext?,asp.net-mvc,ihttpmodule,Asp.net Mvc,Ihttpmodule,我有一个自定义IHTTP模块,可以进行身份验证(到Facebook、Myspace等)。它会引发一个事件,可以在HttpApplication实例中处理该事件,并提供有关用户的详细信息。这很像FormsAuthenticationModule引发的OnAuthentication事件 从HttpApplication类中,我应该将我获得的信息放在哪里,以便它可用于ASP.NET MVC管道?我过去常把它放在上下文中。项目字典。但是,我想用(更友好的)HttpContextBase将其放在那里,这
那么,基本上,如何最好地将IHttpModule中的数据获取到MVC上下文中呢?通过快速查看,我能想到的最好方法是创建一个自定义IControllerFactory,从HttpContext中提取数据并将其添加到RequestContext。我回答我自己的问题了吗?有没有一种侵入性更小的方式(比如我可以处理的事件)?我猜您的模块在路由之前运行。如果是这样,那么直接将其添加到RequestContext还为时过早
我会尝试将其添加到HttpContext.Current.Items。路由将使用HttpContextBase包装该HttpContext。然后,您应该能够通过RequestContext.HttpContext.Items从任何地方访问它。我明白了,因此项目将从HttpContext复制到HttpContextBase。很高兴知道。