OWIN + NHibernate + WebAPI + IAutofacAuthenticationFilter(没有HttpContext?!?!?)

时间:2016-06-09 17:39:07

标签: asp.net-web-api nhibernate owin autofac

在我的REST API中添加身份验证的过程中,我遇到了一些麻烦。

我目前正在使用我的OWIN启动来使用会话每请求上下文来配置我的NHibernate工厂(即" web")。然后我有一个OWIN middlware设置将我的工厂会话绑定到NHibernate.CurrentSessionContext(以及稍后拆除它),最后我让Autofac将IAutofacAuthenticationFilter注入我的WebAPI控制器。

基本上,我的问题是我想使用我现有的NHibernate设置来验证我的用户对我的数据库,但ISessionFactory.GetCurrentSession在我的IAutofacAuthenticationFilter中抛出一个异常,因为显然没有HttpContext。

我假设这是由于IAutofacAuthenticationFilter的某些潜在的异步方面导致产生新线程,但它没有引用HttpContext。有没有办法解决?或者我将不得不将我的身份验证视为与应用程序其余部分独立的独立工作单元,并具有自己的会话管理。

请注意,如果没有IAutofacAuthenticationFilter,一切都按预期工作,我的控制器可以使用ISessionFactory.GetCurrentSession来访问我的数据库。只有当我尝试从IAutofacAuthenticationFilter中访问我的数据库时才会出现问题。

0 个答案:

没有答案