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(); }
private void reset() { data = new PermissionDictionary <int>(); data.Add(0, "member"); data.Add(1, "*"); data.Add(2, "!*"); }
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(); }
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); } }
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); } }
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(); }
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(); } }
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(); } }