Esempio n. 1
0
        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));
        }
Esempio n. 2
0
 public BackendUserStore(Lvwei8MySqlEntities context)
 {
     if (context == null)
     {
         throw new ArgumentNullException("context");
     }
     this.Context         = context;
     this.AutoSaveChanges = true;
 }
Esempio n. 3
0
        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);
        }