Beispiel #1
0
 protected void Session_Start(Object sender, EventArgs e)
 {
     WebApplication.SetInstance(Session, new SecuredExportExampleAspNetApplication());
     InMemoryDataStoreProvider.Register();
     WebApplication.Instance.ConnectionString = InMemoryDataStoreProvider.ConnectionString;
     ((SecurityStrategy)WebApplication.Instance.Security).CustomizeRequestProcessors +=
         delegate(object s, CustomizeRequestProcessorsEventArgs args) {
         List <IOperationPermission> result   = new List <IOperationPermission>();
         SecurityStrategyComplex     security = s as SecurityStrategyComplex;
         if (security != null)
         {
             Employee user = security.User as Employee;
             if (user != null)
             {
                 foreach (ExtendedSecurityRole role in user.Roles)
                 {
                     if (role.CanExport)
                     {
                         result.Add(new ExportPermission());
                     }
                 }
             }
         }
         IPermissionDictionary permissionDictionary = new PermissionDictionary((IEnumerable <IOperationPermission>)result);
         args.Processors.Add(typeof(ExportPermissionRequest), new ExportPermissionRequestProcessor(permissionDictionary));
     };
     WebApplication.Instance.Setup();
     WebApplication.Instance.Start();
 }
Beispiel #2
0
 private void reset()
 {
     data = new PermissionDictionary <int>();
     data.Add(0, "member");
     data.Add(1, "*");
     data.Add(2, "!*");
 }
Beispiel #3
0
        public static void CustomizeRequestProcessors(CustomizeRequestProcessorsEventArgs e)
        {
            var customPermissions = e.Permissions.WithCustomPermissions();
            var fieldName         = "permissionsGroupedByRole";
            var requestProcessors = e.Processors.Select(pair => pair.Value)
                                    .Where(processor => processor is SerializablePermissionRequestProcessorWrapper ||
                                           processor is NavigationPermissionRequestProcessor);

            foreach (var processor in requestProcessors)
            {
                IPermissionRequestProcessor requestProcessor;
                if (processor is NavigationPermissionRequestProcessor)
                {
                    requestProcessor = processor;
                    var enumerable =
                        ((IEnumerable <IEnumerable <IOperationPermission> >)requestProcessor.GetFieldValue(fieldName)).Select(
                            permissions => new PermissionDictionary(permissions).WithSecurityOperationAttributePermissions()
                            .GetPermissions <IOperationPermission>());
                    requestProcessor.SetFieldValue(fieldName, enumerable);
                    customPermissions = new PermissionDictionary(customPermissions.GetPermissions <IOperationPermission>()
                                                                 .Concat(enumerable.SelectMany(permissions => permissions)));
                }
                else
                {
                    requestProcessor = (IPermissionRequestProcessor)processor.GetFieldValue("requestProcessor");
                    if (requestProcessor is ServerPermissionRequestProcessor)
                    {
                        fieldName = "permissionsDictionary";
                        var processorDictionary = ((IPermissionDictionary)requestProcessor.GetFieldValue(fieldName))
                                                  .WithSecurityOperationAttributePermissions();
                        requestProcessor.SetFieldValue(fieldName, processorDictionary);
                        var operationPermissions = processorDictionary.GetPermissions <IOperationPermission>().ToList();
                        customPermissions = new PermissionDictionary(customPermissions.GetPermissions <IOperationPermission>()
                                                                     .Concat(operationPermissions));
                    }
                }
            }

            var keyValuePairs = new[] {
                new KeyValuePair <Type, IPermissionRequestProcessor>(typeof(MyDetailsOperationRequest),
                                                                     customPermissions.GetProcessor <MyDetailsRequestProcessor>()),
                new KeyValuePair <Type, IPermissionRequestProcessor>(typeof(AnonymousLoginOperationRequest),
                                                                     customPermissions.GetProcessor <AnonymousLoginRequestProcessor>()),
                new KeyValuePair <Type, IPermissionRequestProcessor>(typeof(IsAdministratorPermissionRequest),
                                                                     customPermissions.GetProcessor <IsAdministratorPermissionRequestProcessor>()),
                new KeyValuePair <Type, IPermissionRequestProcessor>(typeof(NavigationItemPermissionRequest),
                                                                     customPermissions.WithHiddenNavigationItemPermissions()
                                                                     .GetProcessor <NavigationItemPermissionRequestProcessor>())
            };

            foreach (var keyValuePair in keyValuePairs)
            {
                e.Processors.Add(keyValuePair);
            }
        }
        /// <summary>
        /// Constructor.
        /// </summary>
        public PermissionManager(IIocManager iocManager, IAuthorizationConfiguration authorizationConfiguration)
        {
            PermissionGrantStore = NullPermissionGrantStore.Instance;
            Logger = NullLogger.Instance;

            _iocManager = iocManager;
            _authorizationConfiguration = authorizationConfiguration;

            _rootGroups = new Dictionary<string, PermissionGroup>();
            _permissions = new PermissionDictionary();
        }
Beispiel #5
0
        static void Main()
        {
#if EASYTEST
            DevExpress.ExpressApp.Win.EasyTest.EasyTestRemotingRegistration.Register();
#endif
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            EditModelPermission.AlwaysGranted = System.Diagnostics.Debugger.IsAttached;
            HideNavigationItemsExampleWindowsFormsApplication winApplication = new HideNavigationItemsExampleWindowsFormsApplication();
            // Refer to the http://documentation.devexpress.com/#Xaf/CustomDocument2680 help article for more details on how to provide a custom splash form.
            //winApplication.SplashScreen = new DevExpress.ExpressApp.Win.Utils.DXSplashScreen("YourSplashImage.png");
            if (ConfigurationManager.ConnectionStrings["ConnectionString"] != null)
            {
                winApplication.ConnectionString = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;
            }
#if EASYTEST
            if (ConfigurationManager.ConnectionStrings["EasyTestConnectionString"] != null)
            {
                winApplication.ConnectionString = ConfigurationManager.ConnectionStrings["EasyTestConnectionString"].ConnectionString;
            }
#endif
            try {
                ((SecurityStrategy)winApplication.Security).CustomizeRequestProcessors +=
                    delegate(object sender, CustomizeRequestProcessorsEventArgs e) {
                    List <IOperationPermission> result   = new List <IOperationPermission>();
                    SecurityStrategyComplex     security = sender as SecurityStrategyComplex;
                    if (security != null)
                    {
                        ISecurityUserWithRoles user = security.User as ISecurityUserWithRoles;
                        if (user != null)
                        {
                            foreach (ISecurityRole role in user.Roles)
                            {
                                if (role is CustomSecurityRole)
                                {
                                    result.AddRange(((CustomSecurityRole)role).GetPermissions());
                                }
                            }
                        }
                    }
                    IPermissionDictionary permissionDictionary = new PermissionDictionary((IEnumerable <IOperationPermission>)result);
                    e.Processors.Add(typeof(NavigationItemPermissionRequest), new NavigationItemPermissionRequestProcessor(permissionDictionary));
                };
                winApplication.Setup();
                winApplication.Start();
            } catch (Exception e) {
                winApplication.HandleException(e);
            }
        }
Beispiel #6
0
        protected void Session_Start(Object sender, EventArgs e)
        {
            Tracing.Initialize();
            WebApplication.SetInstance(Session, new InsureCoreAspNetApplication());
            DevExpress.ExpressApp.Web.Templates.DefaultVerticalTemplateContentNew.ClearSizeLimit();
            WebApplication.Instance.SwitchToNewStyle();
            if (ConfigurationManager.ConnectionStrings["ConnectionString"] != null)
            {
                WebApplication.Instance.ConnectionString = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;
            }
#if EASYTEST
            if (ConfigurationManager.ConnectionStrings["EasyTestConnectionString"] != null)
            {
                WebApplication.Instance.ConnectionString = ConfigurationManager.ConnectionStrings["EasyTestConnectionString"].ConnectionString;
            }
#endif
#if DEBUG
            if (System.Diagnostics.Debugger.IsAttached && WebApplication.Instance.CheckCompatibilityType == CheckCompatibilityType.DatabaseSchema)
            {
                WebApplication.Instance.DatabaseUpdateMode = DatabaseUpdateMode.UpdateDatabaseAlways;
            }
#endif


            ((SecurityStrategy)WebApplication.Instance.Security).CustomizeRequestProcessors += delegate(object s, CustomizeRequestProcessorsEventArgs args)
            {
                List <IOperationPermission> result   = new List <IOperationPermission>();
                SecurityStrategyComplex     security = s as SecurityStrategyComplex;
                if (security != null)
                {
                    InsureCore.Module.BusinessObjects.Administration.User user = security.User as InsureCore.Module.BusinessObjects.Administration.User;
                    if (user != null)
                    {
                        foreach (InsureCore.Module.BusinessObjects.Administration.Role role in user.Roles)
                        {
                            if (role.CanExport)
                            {
                                result.Add(new ExportPermission());
                            }
                        }
                    }
                }
                IPermissionDictionary permissionDictionary = new PermissionDictionary((IEnumerable <IOperationPermission>)result);
                args.Processors.Add(typeof(ExportPermissionRequest), new ExportPermissionRequestProcessor(permissionDictionary));
            };

            WebApplication.Instance.Setup();
            WebApplication.Instance.Start();
        }
        static void OnCustomizeRequestProcessors(object sender, CustomizeRequestProcessorsEventArgs e)
        {
            List <IOperationPermission> result   = new List <IOperationPermission>();
            SecurityStrategyComplex     security = (SecurityStrategyComplex)sender;
            WXafUser user = (WXafUser)security.User;

            foreach (WXafRole role in user.Roles)
            {
                foreach (ActionPermission action in role.ActionPermissions)
                {
                    result.Add(new ExecuteActionPermission(action.ActionId));
                }
            }
            IPermissionDictionary dictionary = new PermissionDictionary(result);

            e.Processors.Add(typeof(ExecuteActionPermissionRequest), new ExecuteActionRequestProcessor(dictionary));
        }
        static void Main()
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            EditModelPermission.AlwaysGranted = System.Diagnostics.Debugger.IsAttached;
            SecuredExportExampleWindowsFormsApplication winApplication = new SecuredExportExampleWindowsFormsApplication();

#if EASYTEST
            DevExpress.ExpressApp.Win.EasyTest.EasyTestRemotingRegistration.Register();
#endif
            try {
                InMemoryDataStoreProvider.Register();
                winApplication.ConnectionString = InMemoryDataStoreProvider.ConnectionString;
                ((SecurityStrategy)winApplication.Security).CustomizeRequestProcessors +=
                    delegate(object sender, CustomizeRequestProcessorsEventArgs e) {
                    List <IOperationPermission> result   = new List <IOperationPermission>();
                    SecurityStrategyComplex     security = sender as SecurityStrategyComplex;
                    if (security != null)
                    {
                        Employee user = security.User as Employee;
                        if (user != null)
                        {
                            foreach (ExtendedSecurityRole role in user.Roles)
                            {
                                if (role.CanExport)
                                {
                                    result.Add(new ExportPermission());
                                }
                            }
                        }
                    }
                    IPermissionDictionary permissionDictionary = new PermissionDictionary((IEnumerable <IOperationPermission>)result);
                    e.Processors.Add(typeof(ExportPermissionRequest), new ExportPermissionRequestProcessor(permissionDictionary));
                };
                winApplication.Setup();
                winApplication.Start();
            }
            catch (Exception e) {
                winApplication.HandleException(e);
            }
        }
Beispiel #9
0
        public static bool hasPermission(string permissionName)
        {
            if (CurrentUser == null)
            {
                return(false);
            }
            else if (CurrentUser.NAME == CommonResources.AdminUsername)
            {
                return(true);
            }
            else if (CurrentUser.ROLE == null)
            {
                return(false);
            }
            else if (CurrentUser.ROLE.ROLE_PERMISSION.Count == 0)
            {
                return(false);
            }

            string permissionKey = PermissionDictionary.First(x => x.Value == permissionName).Key;

            return(CurrentUser.ROLE.ROLE_PERMISSION.Any(x => x.PERMISSION == permissionKey));
        }
        protected void Session_Start(Object sender, EventArgs e)
        {
            WebApplication.SetInstance(Session, new HideNavigationItemsExampleAspNetApplication());
            if (ConfigurationManager.ConnectionStrings["ConnectionString"] != null)
            {
                WebApplication.Instance.ConnectionString = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;
            }
#if EASYTEST
            if (ConfigurationManager.ConnectionStrings["EasyTestConnectionString"] != null)
            {
                WebApplication.Instance.ConnectionString = ConfigurationManager.ConnectionStrings["EasyTestConnectionString"].ConnectionString;
            }
#endif
            ((SecurityStrategy)WebApplication.Instance.Security).CustomizeRequestProcessors +=
                delegate(object sender2, CustomizeRequestProcessorsEventArgs e2) {
                List <IOperationPermission> result   = new List <IOperationPermission>();
                SecurityStrategyComplex     security = sender2 as SecurityStrategyComplex;
                if (security != null)
                {
                    ISecurityUserWithRoles user = security.User as ISecurityUserWithRoles;
                    if (user != null)
                    {
                        foreach (ISecurityRole role in user.Roles)
                        {
                            if (role is CustomSecurityRole)
                            {
                                result.AddRange(((CustomSecurityRole)role).GetPermissions());
                            }
                        }
                    }
                }
                IPermissionDictionary permissionDictionary = new PermissionDictionary((IEnumerable <IOperationPermission>)result);
                e2.Processors.Add(typeof(NavigationItemPermissionRequest), new NavigationItemPermissionRequestProcessor(permissionDictionary));
            };
            WebApplication.Instance.Setup();
            WebApplication.Instance.Start();
        }
 /// <summary>
 /// 构造函数
 /// </summary>
 protected PermissionDefinitionContextBase()
 {
     Permissions = new PermissionDictionary();
 }
Beispiel #12
0
        static void Main(string[] args)
        {
            try
            {
                string connectionString = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;

                ValueManager.ValueManagerType = typeof(MultiThreadValueManager <>).GetGenericTypeDefinition();

                ServerApplication serverApplication = new ServerApplication();
                serverApplication.ApplicationName        = "BPIWABK";
                serverApplication.CheckCompatibilityType = CheckCompatibilityType.DatabaseSchema;
                if (System.Diagnostics.Debugger.IsAttached && serverApplication.CheckCompatibilityType == CheckCompatibilityType.DatabaseSchema)
                {
                    serverApplication.DatabaseUpdateMode = DatabaseUpdateMode.UpdateDatabaseAlways;
                }

                serverApplication.Modules.BeginInit();
                serverApplication.Modules.Add(new DevExpress.ExpressApp.Security.SecurityModule());
                serverApplication.Modules.Add(new BPIWABK.Module.BPIWABKModule());
                serverApplication.Modules.Add(new BPIWABK.Module.Win.BPIWABKWindowsFormsModule());
                serverApplication.Modules.Add(new BPIWABK.Module.Web.BPIWABKAspNetModule());
                serverApplication.Modules.Add(new DevExpress.ExpressApp.AuditTrail.AuditTrailModule());
                serverApplication.Modules.Add(new DevExpress.ExpressApp.Objects.BusinessClassLibraryCustomizationModule());
                serverApplication.Modules.Add(new DevExpress.ExpressApp.Chart.ChartModule());
                serverApplication.Modules.Add(new DevExpress.ExpressApp.Chart.Win.ChartWindowsFormsModule());
                serverApplication.Modules.Add(new DevExpress.ExpressApp.Chart.Web.ChartAspNetModule());
                serverApplication.Modules.Add(new DevExpress.ExpressApp.CloneObject.CloneObjectModule());
                serverApplication.Modules.Add(new DevExpress.ExpressApp.ConditionalAppearance.ConditionalAppearanceModule());
                serverApplication.Modules.Add(new DevExpress.ExpressApp.Dashboards.DashboardsModule()
                {
                    DashboardDataType = typeof(DevExpress.Persistent.BaseImpl.DashboardData)
                });
                serverApplication.Modules.Add(new DevExpress.ExpressApp.Dashboards.Win.DashboardsWindowsFormsModule());
                serverApplication.Modules.Add(new DevExpress.ExpressApp.Dashboards.Web.DashboardsAspNetModule());
                serverApplication.Modules.Add(new DevExpress.ExpressApp.FileAttachments.Win.FileAttachmentsWindowsFormsModule());
                serverApplication.Modules.Add(new DevExpress.ExpressApp.FileAttachments.Web.FileAttachmentsAspNetModule());
                serverApplication.Modules.Add(new DevExpress.ExpressApp.HtmlPropertyEditor.Win.HtmlPropertyEditorWindowsFormsModule());
                serverApplication.Modules.Add(new DevExpress.ExpressApp.HtmlPropertyEditor.Web.HtmlPropertyEditorAspNetModule());
                serverApplication.Modules.Add(new DevExpress.ExpressApp.PivotChart.PivotChartModuleBase());
                serverApplication.Modules.Add(new DevExpress.ExpressApp.PivotChart.Win.PivotChartWindowsFormsModule());
                serverApplication.Modules.Add(new DevExpress.ExpressApp.PivotChart.Web.PivotChartAspNetModule());
                serverApplication.Modules.Add(new DevExpress.ExpressApp.PivotGrid.PivotGridModule());
                serverApplication.Modules.Add(new DevExpress.ExpressApp.PivotGrid.Win.PivotGridWindowsFormsModule());
                serverApplication.Modules.Add(new DevExpress.ExpressApp.PivotGrid.Web.PivotGridAspNetModule());
                serverApplication.Modules.Add(new DevExpress.ExpressApp.ReportsV2.ReportsModuleV2()
                {
                    ReportDataType = typeof(DevExpress.Persistent.BaseImpl.ReportDataV2)
                });
                serverApplication.Modules.Add(new DevExpress.ExpressApp.ReportsV2.Win.ReportsWindowsFormsModuleV2());
                serverApplication.Modules.Add(new DevExpress.ExpressApp.ReportsV2.Web.ReportsAspNetModuleV2());
                serverApplication.Modules.Add(new DevExpress.ExpressApp.TreeListEditors.TreeListEditorsModuleBase());
                serverApplication.Modules.Add(new DevExpress.ExpressApp.TreeListEditors.Win.TreeListEditorsWindowsFormsModule());
                serverApplication.Modules.Add(new DevExpress.ExpressApp.TreeListEditors.Web.TreeListEditorsAspNetModule());
                serverApplication.Modules.Add(new DevExpress.ExpressApp.Validation.ValidationModule());
                serverApplication.Modules.Add(new DevExpress.ExpressApp.Validation.Win.ValidationWindowsFormsModule());
                serverApplication.Modules.Add(new DevExpress.ExpressApp.Validation.Web.ValidationAspNetModule());
                serverApplication.Modules.Add(new DevExpress.ExpressApp.ViewVariantsModule.ViewVariantsModule());
                serverApplication.Modules.EndInit();

                serverApplication.DatabaseVersionMismatch         += new EventHandler <DatabaseVersionMismatchEventArgs>(serverApplication_DatabaseVersionMismatch);
                serverApplication.CreateCustomObjectSpaceProvider += new EventHandler <CreateCustomObjectSpaceProviderEventArgs>(serverApplication_CreateCustomObjectSpaceProvider);

                serverApplication.ConnectionString = connectionString;

                Console.WriteLine("Mempersiapkan...");
                serverApplication.Setup();
                Console.WriteLine("Memeriksa kompatibilitas...");
                serverApplication.CheckCompatibility();
                serverApplication.Dispose();
                WcfDataServerHelper.AddKnownType(typeof(ExportPermissionRequest));
                Console.WriteLine("Memulai layanan...");
                //ServerPermissionPolicyRequestProcessor.UseAutoAssociationPermission = true;
                QueryRequestSecurityStrategyHandler securityProviderHandler = delegate()
                {
                    SecurityStrategyComplex security = new SecurityStrategyComplex(
                        typeof(Pegawai), typeof(Peran), new AuthenticationStandard());
                    security.CustomizeRequestProcessors +=
                        delegate(object sender, CustomizeRequestProcessorsEventArgs e)
                    {
                        List <IOperationPermission> result = new List <IOperationPermission>();
                        if (security != null)
                        {
                            Pegawai user = security.User as Pegawai;
                            if (user != null)
                            {
                                foreach (Peran role in user.Roles)
                                {
                                    if (role.CanExport)
                                    {
                                        result.Add(new ExportPermission());
                                    }
                                }
                            }
                        }

                        IPermissionDictionary permissionDictionary = new PermissionDictionary((IEnumerable <IOperationPermission>)result);
                        e.Processors.Add(typeof(ExportPermissionRequest), new ExportPermissionRequestProcessor(permissionDictionary));
                    };
                    return(security);
                };
                SecuredDataServer dataServer = new SecuredDataServer(connectionString, XpoTypesInfoHelper.GetXpoTypeInfoSource().XPDictionary, securityProviderHandler);
                RemoteSecuredDataServer.Initialize(dataServer);

                //"Authentication with the TCP Channel" at http://msdn.microsoft.com/en-us/library/59hafwyt(v=vs.80).aspx

                IDictionary t = new Hashtable();
                t.Add("port", 8082);
                //t.Add("secure", true);
                //t.Add("impersonate", false);

                if (string.IsNullOrEmpty(ConfigurationManager.AppSettings["Test"]) == false)
                {
                    Console.WriteLine("Test");
                }

                TcpChannel channel = new TcpChannel(t, null, null);
                ChannelServices.RegisterChannel(channel, true);
                RemotingConfiguration.RegisterWellKnownServiceType(typeof(RemoteSecuredDataServer), "DataServer", WellKnownObjectMode.Singleton);
                Console.WriteLine("Layanan telah dimulai...");
                Console.WriteLine("");
                Console.WriteLine("PERINGATAN: aplikasi Analisis Beban Kerja tidak dapat digunakan apabila layanan di hentikan!");
                Console.WriteLine("Apabila layanan telah di hentikan, jalankan BPIWABK.Console.exe untuk kembali memulai layanan.");
                Console.WriteLine("Tekan tombol Enter untuk menghentikan layanan.");
                Console.ReadLine();
                Console.WriteLine("Menghetikan...");
                ChannelServices.UnregisterChannel(channel);
                Console.WriteLine("Layanan telah dihentikan.");
            }
            catch (Exception e)
            {
                Console.WriteLine("Kesalahan terjadi: " + e.Message);
                Console.WriteLine("Tekan tombol Enter untuk menutup.");
                Console.ReadLine();
            }
        }
        static void Main(string[] args)
        {
            try {
                ValueManager.ValueManagerType = typeof(MultiThreadValueManager <>).GetGenericTypeDefinition();
                InMemoryDataStoreProvider.Register();
                string connectionString = InMemoryDataStoreProvider.ConnectionString;

                Console.WriteLine("Starting...");

                ServerApplication serverApplication = new ServerApplication();
                // Change the ServerApplication.ApplicationName property value. It should be the same as your client application name.
                serverApplication.ApplicationName = "SecuredExportExample";

                // Add your client application's modules to the ServerApplication.Modules collection here.
                serverApplication.Modules.BeginInit();
                serverApplication.Modules.Add(new DevExpress.ExpressApp.Win.SystemModule.SystemWindowsFormsModule());
                serverApplication.Modules.Add(new DevExpress.ExpressApp.Security.SecurityModule());
                serverApplication.Modules.Add(new SecuredExportExample.Module.SecuredExportExampleModule());
                serverApplication.Modules.EndInit();

                serverApplication.DatabaseVersionMismatch         += new EventHandler <DatabaseVersionMismatchEventArgs>(serverApplication_DatabaseVersionMismatch);
                serverApplication.CreateCustomObjectSpaceProvider += new EventHandler <CreateCustomObjectSpaceProviderEventArgs>(serverApplication_CreateCustomObjectSpaceProvider);

                serverApplication.ConnectionString = connectionString;

                Console.WriteLine("Setup...");
                serverApplication.Setup();
                Console.WriteLine("CheckCompatibility...");
                serverApplication.CheckCompatibility();
                serverApplication.Dispose();

                Console.WriteLine("Starting server...");
                Func <IDataServerSecurity> dataServerSecurityProvider = () => {
                    SecurityStrategyComplex security = new SecurityStrategyComplex(
                        typeof(Employee), typeof(ExtendedSecurityRole), new AuthenticationStandard());
                    security.CustomizeRequestProcessors +=
                        delegate(object sender, CustomizeRequestProcessorsEventArgs e) {
                        List <IOperationPermission> result = new List <IOperationPermission>();
                        if (security != null)
                        {
                            Employee user = security.User as Employee;
                            if (user != null)
                            {
                                foreach (ExtendedSecurityRole role in user.Roles)
                                {
                                    if (role.CanExport)
                                    {
                                        result.Add(new ExportPermission());
                                    }
                                }
                            }
                        }
                        IPermissionDictionary permissionDictionary = new PermissionDictionary((IEnumerable <IOperationPermission>)result);
                        e.Processors.Add(typeof(ExportPermissionRequest), new ExportPermissionRequestProcessor(permissionDictionary));
                    };
                    return(security);
                };

                WcfDataServerHelper.AddKnownType(typeof(ExportPermissionRequest));
                WcfXafServiceHost serviceHost = new WcfXafServiceHost(connectionString, dataServerSecurityProvider);
                serviceHost.AddServiceEndpoint(typeof(IWcfXafDataServer), WcfDataServerHelper.CreateNetTcpBinding(), "net.tcp://127.0.0.1:1451/DataServer");
                serviceHost.Open();
                Console.WriteLine("Server is started. Press Enter to stop.");
#if !EASYTEST
                Console.ReadLine();
#else
                // 20 seconds is enough to pass all tests:
                System.Threading.Thread.Sleep(20000);
#endif
                Console.WriteLine("Stopping...");
                serviceHost.Close();
                Console.WriteLine("Server is stopped.");
            }
            catch (Exception e) {
                Console.WriteLine("Exception occurs: " + e.Message);
                Console.WriteLine("Press Enter to close.");
                Console.ReadLine();
            }
        }
Beispiel #14
0
        static void Main(string[] args)
        {
            WcfDataServerHelper.AddKnownType(typeof(ExportPermissionRequest));
            try
            {
                string connectionString = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;

                ValueManager.ValueManagerType = typeof(MultiThreadValueManager <>).GetGenericTypeDefinition();

                SecurityAdapterHelper.Enable();
                ServerApplication serverApplication = new ServerApplication();
                serverApplication.ApplicationName        = "InsureCore";
                serverApplication.CheckCompatibilityType = CheckCompatibilityType.DatabaseSchema;
#if DEBUG
                if (System.Diagnostics.Debugger.IsAttached && serverApplication.CheckCompatibilityType == CheckCompatibilityType.DatabaseSchema)
                {
                    serverApplication.DatabaseUpdateMode = DatabaseUpdateMode.UpdateDatabaseAlways;
                }
#endif

                serverApplication.Modules.BeginInit();
                serverApplication.Modules.Add(new DevExpress.ExpressApp.Security.SecurityModule());
                serverApplication.Modules.Add(new InsureCore.Module.InsureCoreModule());
                serverApplication.Modules.Add(new InsureCore.Module.Win.InsureCoreWindowsFormsModule());
                serverApplication.Modules.Add(new InsureCore.Module.Web.InsureCoreAspNetModule());
                serverApplication.Modules.Add(new DevExpress.ExpressApp.AuditTrail.AuditTrailModule());
                serverApplication.Modules.Add(new DevExpress.ExpressApp.Objects.BusinessClassLibraryCustomizationModule());
                serverApplication.Modules.Add(new DevExpress.ExpressApp.Chart.ChartModule());
                serverApplication.Modules.Add(new DevExpress.ExpressApp.Chart.Win.ChartWindowsFormsModule());
                serverApplication.Modules.Add(new DevExpress.ExpressApp.Chart.Web.ChartAspNetModule());
                serverApplication.Modules.Add(new DevExpress.ExpressApp.CloneObject.CloneObjectModule());
                serverApplication.Modules.Add(new DevExpress.ExpressApp.ConditionalAppearance.ConditionalAppearanceModule());
                serverApplication.Modules.Add(new DevExpress.ExpressApp.Dashboards.DashboardsModule()
                {
                    DashboardDataType = typeof(DevExpress.Persistent.BaseImpl.DashboardData)
                });
                serverApplication.Modules.Add(new DevExpress.ExpressApp.Dashboards.Win.DashboardsWindowsFormsModule());
                serverApplication.Modules.Add(new DevExpress.ExpressApp.Dashboards.Web.DashboardsAspNetModule());
                serverApplication.Modules.Add(new DevExpress.ExpressApp.FileAttachments.Win.FileAttachmentsWindowsFormsModule());
                serverApplication.Modules.Add(new DevExpress.ExpressApp.FileAttachments.Web.FileAttachmentsAspNetModule());
                serverApplication.Modules.Add(new DevExpress.ExpressApp.HtmlPropertyEditor.Win.HtmlPropertyEditorWindowsFormsModule());
                serverApplication.Modules.Add(new DevExpress.ExpressApp.HtmlPropertyEditor.Web.HtmlPropertyEditorAspNetModule());
                serverApplication.Modules.Add(new DevExpress.ExpressApp.Kpi.KpiModule());
                serverApplication.Modules.Add(new DevExpress.ExpressApp.Maps.Web.MapsAspNetModule());
                serverApplication.Modules.Add(new DevExpress.ExpressApp.Notifications.NotificationsModule());
                serverApplication.Modules.Add(new DevExpress.ExpressApp.Notifications.Win.NotificationsWindowsFormsModule());
                serverApplication.Modules.Add(new DevExpress.ExpressApp.Notifications.Web.NotificationsAspNetModule());
                serverApplication.Modules.Add(new DevExpress.ExpressApp.PivotChart.PivotChartModuleBase());
                serverApplication.Modules.Add(new DevExpress.ExpressApp.PivotChart.Win.PivotChartWindowsFormsModule());
                serverApplication.Modules.Add(new DevExpress.ExpressApp.PivotChart.Web.PivotChartAspNetModule());
                serverApplication.Modules.Add(new DevExpress.ExpressApp.PivotGrid.PivotGridModule());
                serverApplication.Modules.Add(new DevExpress.ExpressApp.PivotGrid.Win.PivotGridWindowsFormsModule());
                serverApplication.Modules.Add(new DevExpress.ExpressApp.PivotGrid.Web.PivotGridAspNetModule());
                serverApplication.Modules.Add(new DevExpress.ExpressApp.ReportsV2.ReportsModuleV2()
                {
                    ReportDataType = typeof(DevExpress.Persistent.BaseImpl.ReportDataV2)
                });
                serverApplication.Modules.Add(new DevExpress.ExpressApp.ReportsV2.Win.ReportsWindowsFormsModuleV2());
                serverApplication.Modules.Add(new DevExpress.ExpressApp.ReportsV2.Web.ReportsAspNetModuleV2());
                serverApplication.Modules.Add(new DevExpress.ExpressApp.Scheduler.SchedulerModuleBase());
                serverApplication.Modules.Add(new DevExpress.ExpressApp.Scheduler.Win.SchedulerWindowsFormsModule());
                serverApplication.Modules.Add(new DevExpress.ExpressApp.Scheduler.Web.SchedulerAspNetModule());
                serverApplication.Modules.Add(new DevExpress.ExpressApp.ScriptRecorder.ScriptRecorderModuleBase());
                serverApplication.Modules.Add(new DevExpress.ExpressApp.ScriptRecorder.Win.ScriptRecorderWindowsFormsModule());
                serverApplication.Modules.Add(new DevExpress.ExpressApp.ScriptRecorder.Web.ScriptRecorderAspNetModule());
                serverApplication.Modules.Add(new DevExpress.ExpressApp.StateMachine.StateMachineModule());
                serverApplication.Modules.Add(new DevExpress.ExpressApp.TreeListEditors.TreeListEditorsModuleBase());
                serverApplication.Modules.Add(new DevExpress.ExpressApp.TreeListEditors.Win.TreeListEditorsWindowsFormsModule());
                serverApplication.Modules.Add(new DevExpress.ExpressApp.TreeListEditors.Web.TreeListEditorsAspNetModule());
                serverApplication.Modules.Add(new DevExpress.ExpressApp.Validation.ValidationModule());
                serverApplication.Modules.Add(new DevExpress.ExpressApp.Validation.Win.ValidationWindowsFormsModule());
                serverApplication.Modules.Add(new DevExpress.ExpressApp.Validation.Web.ValidationAspNetModule());
                serverApplication.Modules.Add(new DevExpress.ExpressApp.ViewVariantsModule.ViewVariantsModule());
                serverApplication.Modules.Add(new DevExpress.ExpressApp.Workflow.WorkflowModule());
                serverApplication.Modules.Add(new DevExpress.ExpressApp.Workflow.Win.WorkflowWindowsFormsModule());
                serverApplication.Modules.EndInit();

                serverApplication.DatabaseVersionMismatch         += new EventHandler <DatabaseVersionMismatchEventArgs>(serverApplication_DatabaseVersionMismatch);
                serverApplication.CreateCustomObjectSpaceProvider += new EventHandler <CreateCustomObjectSpaceProviderEventArgs>(serverApplication_CreateCustomObjectSpaceProvider);

                serverApplication.ConnectionString = connectionString;

                Console.WriteLine("Setup...");
                serverApplication.Setup();
                Console.WriteLine("CheckCompatibility...");
                serverApplication.CheckCompatibility();
                serverApplication.Dispose();

                Console.WriteLine("Starting server...");
                Func <IDataServerSecurity> dataServerSecurityProvider = () =>
                {
                    SecurityStrategyComplex security = new SecurityStrategyComplex(typeof(User), typeof(Role), new AuthenticationStandard());
                    security.SupportNavigationPermissionsForTypes = false;
                    security.CustomizeRequestProcessors          += delegate(object sender, CustomizeRequestProcessorsEventArgs e)
                    {
                        List <IOperationPermission> result = new List <IOperationPermission>();
                        if (security != null)
                        {
                            User user = security.User as User;
                            if (user != null)
                            {
                                foreach (Role role in user.Roles)
                                {
                                    if (role.CanExport)
                                    {
                                        result.Add(new ExportPermission());
                                    }
                                }
                            }
                        }
                        IPermissionDictionary permissionDictionary = new PermissionDictionary((IEnumerable <IOperationPermission>)result);
                        e.Processors.Add(typeof(ExportPermissionRequest), new ExportPermissionRequestProcessor(permissionDictionary));
                    };
                    return(security);
                };

                WcfXafServiceHost serviceHost = new WcfXafServiceHost(connectionString, dataServerSecurityProvider);
                serviceHost.AddServiceEndpoint(typeof(IWcfXafDataServer), WcfDataServerHelper.CreateNetTcpBinding(), "net.tcp://127.0.0.1:1451/DataServer");
                serviceHost.Open();
                Console.WriteLine("Server is started. Press Enter to stop.");
                Console.ReadLine();
                Console.WriteLine("Stopping...");
                serviceHost.Close();
                Console.WriteLine("Server is stopped.");
            }
            catch (Exception e)
            {
                Console.WriteLine("Exception occurs: " + e.Message);
                Console.WriteLine("Press Enter to close.");
                Console.ReadLine();
            }
        }