private void configureDependency(IAppBuilder app) { var builder = new ContainerBuilder(); builder.RegisterControllers(Assembly.GetExecutingAssembly()).PropertiesAutowired(); // 注册数据访问上下文 builder.Register <Lvwei8MySqlEntities>(f => { var efDB = new Lvwei8MySqlEntities(); return(efDB); }).As <Lvwei8MySqlEntities>().InstancePerLifetimeScope().PropertiesAutowired(); //var x = new eXiuMySqlEntities(); //x.Database.Log = s => efSqlLogger.Debug(s); builder.Register <Lvwei8MySqlReadOnlyEntities>(f => { var efDB = new Lvwei8MySqlReadOnlyEntities(); return(efDB); }).As <Lvwei8MySqlReadOnlyEntities>().InstancePerLifetimeScope().PropertiesAutowired(); builder.RegisterControllers(Assembly.GetExecutingAssembly()).PropertiesAutowired(); var Dbassemblys = AppDomain.CurrentDomain.GetAssemblies(); var assemblys = Dbassemblys.Where(e => e.FullName.Contains("lvwei8")).ToList(); //注册仓储 builder.RegisterAssemblyTypes(assemblys.ToArray()).Where(t => t.Name.EndsWith("RepositoryImpl")).AsImplementedInterfaces().InstancePerLifetimeScope().PropertiesAutowired(); builder.RegisterGeneric(typeof(RepositoryImpl <>)).As(typeof(IRepository <>)).InstancePerLifetimeScope().PropertiesAutowired(); builder.RegisterGeneric(typeof(ReadOnlyRepositoryImpl <>)).As(typeof(IReadOnlyRepository <>)).InstancePerLifetimeScope().PropertiesAutowired(); //注册服务 builder.RegisterAssemblyTypes(assemblys.ToArray()).Where(t => t.Name.EndsWith("ServiceImpl")).AsImplementedInterfaces().InstancePerLifetimeScope().PropertiesAutowired(PropertyWiringOptions.AllowCircularDependencies); var container = builder.Build(); DependencyResolver.SetResolver(new Autofac.Integration.Mvc.AutofacDependencyResolver(container)); }
public BackendUserStore(Lvwei8MySqlEntities context) { if (context == null) { throw new ArgumentNullException("context"); } this.Context = context; this.AutoSaveChanges = true; }
private void configureDependency(IAppBuilder app) { var builder = new ContainerBuilder(); builder.RegisterControllers(Assembly.GetExecutingAssembly()).PropertiesAutowired(); // 注册数据访问上下文 builder.Register <Lvwei8MySqlEntities>(f => { var efDB = new Lvwei8MySqlEntities(); return(efDB); }).As <Lvwei8MySqlEntities>().InstancePerLifetimeScope().PropertiesAutowired(); //var x = new eXiuMySqlEntities(); //x.Database.Log = s => efSqlLogger.Debug(s); builder.Register <Lvwei8MySqlReadOnlyEntities>(f => { var efDB = new Lvwei8MySqlReadOnlyEntities(); return(efDB); }).As <Lvwei8MySqlReadOnlyEntities>().InstancePerLifetimeScope().PropertiesAutowired(); builder.RegisterControllers(Assembly.GetExecutingAssembly()).PropertiesAutowired(); var Dbassemblys = AppDomain.CurrentDomain.GetAssemblies(); var assemblys = Dbassemblys.Where(e => e.FullName.Contains("lvwei8")).ToList(); //注册仓储 builder.RegisterAssemblyTypes(assemblys.ToArray()).Where(t => t.Name.EndsWith("RepositoryImpl")).AsImplementedInterfaces().InstancePerLifetimeScope().PropertiesAutowired(); builder.RegisterGeneric(typeof(RepositoryImpl <>)).As(typeof(IRepository <>)).InstancePerLifetimeScope().PropertiesAutowired(); builder.RegisterGeneric(typeof(ReadOnlyRepositoryImpl <>)).As(typeof(IReadOnlyRepository <>)).InstancePerLifetimeScope().PropertiesAutowired(); //注册服务 builder.RegisterAssemblyTypes(assemblys.ToArray()).Where(t => t.Name.EndsWith("ServiceImpl")).AsImplementedInterfaces().InstancePerLifetimeScope().PropertiesAutowired(PropertyWiringOptions.AllowCircularDependencies); builder.Register <BackendUserStore <user_backend_Iuser> >(c => new BackendUserStore <user_backend_Iuser>()).AsImplementedInterfaces().MyPropertiesAutowired().InstancePerRequest(); builder.RegisterType <RoleBackend>(); builder.Register <RoleStore <RoleBackend> >(c => new RoleStore <RoleBackend>()).AsImplementedInterfaces(); builder.Register <IdentityFactoryOptions <ApplicationUserManager> >(c => new IdentityFactoryOptions <ApplicationUserManager>() { DataProtectionProvider = new Microsoft.Owin.Security.DataProtection.DpapiDataProtectionProvider("ApplicationName") }); builder.RegisterType <ApplicationUserManager>().MyPropertiesAutowired();//.InstancePerRequest(); builder.RegisterType <ApplicationRoleManager>().MyPropertiesAutowired(); var container = builder.Build(); DependencyResolver.SetResolver(new Autofac.Integration.Mvc.AutofacDependencyResolver(container)); }
protected override bool AuthorizeCore(HttpContextBase httpContext) { if (!httpContext.User.IsInRole("Admin") && httpContext.User.IsInRole("SubStation")) { var controller = (string)httpContext.Request.RequestContext.RouteData.Values["controller"]; var action = httpContext.Request.RequestContext.RouteData.Values["action"]; //var authroizeActions = new string[] { "Edit", "Delete", "DeleteConfirmed", "Verify", "ApprovalConfirmed" }; if (String.IsNullOrEmpty(ExcluedActions) || !ExcluedActions.Split(',').Contains(action)) { var identity = (ClaimsIdentity)httpContext.User.Identity; var claim = identity.Claims.Where(e => e.Type == user_backend_Iuser.ChargeAreasClaimType).FirstOrDefault(); if (claim != null && httpContext.Request.RequestContext.RouteData.Values["id"] != null) { var chargeAreas = claim.Value.Split(',').Select(e => e.Substring(0, 4)).ToList(); var id = Int32.Parse((string)httpContext.Request.RequestContext.RouteData.Values["id"]); string targetArea = ""; using (var db = new Lvwei8MySqlEntities()) { switch (controller) { case "Store": break; default: return(true); } } return(chargeAreas.Contains(targetArea)); } } } return(true); //return base.AuthorizeCore(httpContext); }