public static Container GetInitializeContainer( IAppBuilder app) { var container = new Container(); container.RegisterSingleton(app); container.RegisterConditional(typeof(IRepository<>), typeof(Repository<>), c => !c.Handled); container.RegisterPerWebRequest<IDragonUserStore<AppMember>>(() => new Dragon.SecurityServer.ChainedIdentity.Stores.UserStore<AppMember>(new List<IDragonUserStore<AppMember>>{ new UserStore<AppMember>(new Repository<AppMember>(), new Repository<IdentityUserClaim>(), new Repository<IdentityUserLogin>(), null, null) })); container.RegisterPerWebRequest(() => ApplicationUserManager.Create(container)); container.RegisterPerWebRequest(() => container.GetOwinContext().Authentication); container.RegisterMvcControllers( Assembly.GetExecutingAssembly()); return container; }
public static Container GetInitializeContainer( IAppBuilder app) { var container = new Container(); container.Options.PropertySelectionBehavior = new ImportPropertySelectionBehavior(); // Enable ImportAttribute for property injection container.RegisterSingleton(app); container.Register<IFederationService, FederationService>(Lifestyle.Singleton); container.Register<IAppService, AppService>(Lifestyle.Transient); container.RegisterConditional(typeof(IRepository<>), typeof(Repository<>), c => !c.Handled); container.Register<ICheckPasswordService<AppMember>, LegacyCheckPasswordService<AppMember>>(Lifestyle.Transient); container.RegisterPerWebRequest<IDragonUserStore<AppMember>>(() => { var dragonUserStores = new List<IDragonUserStore<AppMember>> { new UserStore<AppMember>(new Repository<AppMember>(), null, new Repository<IdentityUserLogin>(), new Repository<IdentityUserService>(), new Repository<IdentityUserApp>()) }; if (WebConfigurationManager.ConnectionStrings[RedisConnectionStringName] != null) { var connectionMultiplexer = ConnectionMultiplexer.Connect(WebConfigurationManager.ConnectionStrings[RedisConnectionStringName].ConnectionString); connectionMultiplexer.PreserveAsyncOrder = false; dragonUserStores.Insert(0, new Identity.Redis.UserStore<AppMember>(new RedisUserStore<Identity.Redis.IdentityUser>(connectionMultiplexer), connectionMultiplexer)); } var userStore = new ChainedIdentity.Stores.UserStore<AppMember>(dragonUserStores); Startup.OpenIdMigrationWebrequestHandler = new OpenIdMigrationWebRequestHandler(userStore); return userStore; }); container.Register<IUserService, UserService>(Lifestyle.Transient); container.RegisterPerWebRequest(() => ApplicationUserManager.Create(container, Startup.DataProtectionProvider)); container.RegisterPerWebRequest(() => container.GetOwinContext().Authentication); container.RegisterMvcControllers( Assembly.GetExecutingAssembly()); return container; }