0

当用户请求登录页面时,会调用 LoginController 并且 ninject 将向控制器注入适当的存储库(比如说 IAccountRepository)。如果登录成功,我将从存储库中获取用户信息,然后存储在 Session 中(比如说 AccInfo)。但是,如果用户有一个有效的授权 cookie 返回到我的站点,则 AccInfo 在 Session 中不存在,但我想在另一个控制器中使用它(首先没有注入 IAccountRepository)。我现在该怎么办?我不想调用一个具体的对象(比如说一个 AccountRepository 实例)来从数据库中获取信息,我仍然想在这种情况下使用 DI。

4

1 回答 1

0

也许你不应该将 AccInfo 存储在会话中?只需存储 userId 或类似的东西,然后始终注入您的存储库,并使用 userId 来检索必要的东西。

如果要最小化数据库访问,请在存储库中使用缓存。

于 2013-03-21T19:49:01.070 回答