Dependency injection with asp.net identity and property injection with dbcontext I configure asp.net identity using Simple Injector

  var container = new Container();
  container.Options.DefaultScopedLifestyle = new WebRequestLifestyle();

  //Identity
  container.RegisterPerWebRequest&lt;AppDbContext&gt;();
  container.RegisterPerWebRequest&lt;IUserStore&lt;User, int&gt;&gt;(() =&gt; new UserStore&lt;User, Role, int, UserLogin, UserRole, UserClaim&gt;(new AppDbContext()));
  container.RegisterPerWebRequest&lt;IRoleStore&lt;Role, int&gt;&gt;(() =&gt; new RoleStore&lt;Role, int, UserRole&gt;(new AppDbContext()));
  container.RegisterPerWebRequest&lt;AppRoleManager&gt;();
  container.RegisterPerWebRequest&lt;AppUserManager&gt;();
  container.RegisterPerWebRequest&lt;AppSignInManager&gt;();

  container.RegisterPerWebRequest(() =&gt;
  {
    if (HttpContext.Current != null &amp;&amp; HttpContext.Current.Items["owin.Environment"] == null &amp;&amp; container.IsVerifying)
    {
      return new OwinContext().Authentication;
    }
    return HttpContext.Current.GetOwinContext().Authentication;

  });


And configure a property injection for BaseController and my DbContext

My BaseController

 public class BaseController : Controller
  {
    public ISessionContext SessionContext { get; set; }
  }


My register in simple injector

  container.Register&lt;ISessionContext,ClaimsSessionContext&gt;();
  container.RegisterInitializer&lt;BaseController&gt;(ctrl =&gt;
  {
    ctrl.SessionContext = container.GetInstance&lt;ISessionContext&gt;();
  });


My DbContext

  public class AppDbContext : IdentityDbContext&lt;User, Role, int, UserLogin, UserRole, UserClaim&gt;
  {
    public ISessionContext SessionContext { get; set; }
    public AppDbContext()
      : base("AppConnection")
    {
    }
    public static AppDbContext Create()
    {
      return new AppDbContext();
    }


And my simple injector register for property injection

   container.RegisterInitializer&lt;AppDbContext&gt;(db =&gt;
      {
        db.SessionContext = container.GetInstance&lt;ISessionContext&gt;();
      });


I wonder if there would be no problem injecting  SessionContext property next to my DbContext, for every request it is also instantiated

Suggestions? This ok ?
There is any specific need to register those per single request ?


IUserStore
IRoleStore 
AppRoleManager  
AppRoleManager
AppRoleManager


Weird implementations apart they should be fine as "per application" removing a lot of overhead

Also, you probably can add the sessioncontext to AppDbContext constructor and make a single registration