Esempio n. 1
0
        static void Main()
        {
#if EASYTEST
            DevExpress.ExpressApp.Win.EasyTest.EasyTestRemotingRegistration.Register();
#endif
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            EditModelPermission.AlwaysGranted = System.Diagnostics.Debugger.IsAttached;
            if (Tracing.GetFileLocationFromSettings() == DevExpress.Persistent.Base.FileLocation.CurrentUserApplicationDataFolder)
            {
                Tracing.LocalUserAppDataPath = Application.LocalUserAppDataPath;
            }
            Tracing.Initialize();
            P3TEKWindowsFormsApplication winApplication = new P3TEKWindowsFormsApplication();
            // Refer to the https://documentation.devexpress.com/eXpressAppFramework/CustomDocument112680.aspx help article for more details on how to provide a custom splash form.
            //winApplication.SplashScreen = new DevExpress.ExpressApp.Win.Utils.DXSplashScreen("YourSplashImage.png");
            SecurityAdapterHelper.Enable();
            try {
                string                   connectionString = "net.tcp://127.0.0.1:1451/DataServer";
                WcfSecuredClient         wcfSecuredClient = new WcfSecuredClient(WcfDataServerHelper.CreateNetTcpBinding(), new EndpointAddress(connectionString));
                MiddleTierClientSecurity security         = new MiddleTierClientSecurity(wcfSecuredClient);
                security.IsSupportChangePassword = true;
                winApplication.Security          = security;
                winApplication.CreateCustomObjectSpaceProvider += (s, e) => {
                    e.ObjectSpaceProviders.Add(new MiddleTierServerObjectSpaceProvider(wcfSecuredClient));
                    e.ObjectSpaceProviders.Add(new NonPersistentObjectSpaceProvider(winApplication.TypesInfo, null));
                };
                winApplication.Setup();
                winApplication.Start();
                wcfSecuredClient.Dispose();
            }
            catch (Exception e) {
                winApplication.HandleException(e);
            }
        }
Esempio n. 2
0
        protected void Session_Start(Object sender, EventArgs e)
        {
            WebApplication.SetInstance(Session, new PermissionPolicyExampleAspNetApplication());
            string connectionString = "net.tcp://127.0.0.1:1451/DataServer";
            WcfSecuredDataServerClient clientDataServer = new WcfSecuredDataServerClient(
                WcfDataServerHelper.CreateDefaultBinding(), new EndpointAddress(connectionString));

            Session["DataServerClient"] = clientDataServer;
            WcfSecuredClient         wcfSecuredClient = new WcfSecuredClient(WcfDataServerHelper.CreateNetTcpBinding(), new EndpointAddress(connectionString));
            MiddleTierClientSecurity security         = new MiddleTierClientSecurity(wcfSecuredClient);

            security.IsSupportChangePassword           = true;
            WebApplication.Instance.ApplicationName    = "PermissionPolicyExample";
            WebApplication.Instance.Security           = security;
            WebApplication.Instance.DatabaseUpdateMode = DatabaseUpdateMode.Never;
            WebApplication.Instance.CreateCustomObjectSpaceProvider +=
                delegate(object sender2, CreateCustomObjectSpaceProviderEventArgs e2)
            {
                e2.ObjectSpaceProvider = new MiddleTierServerObjectSpaceProvider(wcfSecuredClient);
            };
            WebApplication.Instance.Setup();
            WebApplication.Instance.Start();
        }
Esempio n. 3
0
        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();
            var serverProcess = new System.Diagnostics.Process();
            serverProcess.StartInfo.FileName = @"..\..\..\SecuredExportExample.MiddleTierSecurityServer\bin\EasyTest\SecuredExportExample.MiddleTierSecurityServer.exe";
            serverProcess.Start();
            System.Threading.Thread.Sleep(5000);
#endif
            try
            {
                WcfDataServerHelper.AddKnownType(typeof(ExportPermissionRequest));
                winApplication.ConnectionString   = "net.tcp://127.0.0.1:1451/DataServer";
                winApplication.DatabaseUpdateMode = DatabaseUpdateMode.Never;
                WcfSecuredClient         wcfSecuredClient = new WcfSecuredClient(WcfDataServerHelper.CreateNetTcpBinding(), new EndpointAddress(winApplication.ConnectionString));
                MiddleTierClientSecurity securityClient   = new MiddleTierClientSecurity(wcfSecuredClient);
                securityClient.IsSupportChangePassword = true;
                winApplication.ApplicationName         = "SecuredExportExample";
                winApplication.Security = securityClient;
                winApplication.CreateCustomObjectSpaceProvider += (s, e) =>
                {
                    e.ObjectSpaceProvider = new MiddleTierServerObjectSpaceProvider(wcfSecuredClient);
                };
                winApplication.Setup();
                winApplication.Start();
                wcfSecuredClient.Dispose();
            }
            catch (Exception e)
            {
                winApplication.HandleException(e);
            }
        }
        static void AccessEmployee(WcfSecuredClient wcfSecuredClient)
        {
            try {
                XPDictionary dictionary = new ReflectionDictionary();
                dictionary.CollectClassInfos(Assembly.GetAssembly(typeof(Employee)));
                bool isReadGranted = wcfSecuredClient.IsGranted(new SerializablePermissionRequest(typeof(Employee), null, null, SecurityOperations.Read));
                Console.WriteLine(string.Format("Is read granted for Employee: {0}", isReadGranted));

                bool isWriteGranted = wcfSecuredClient.IsGranted(new SerializablePermissionRequest(typeof(Employee), null, null, SecurityOperations.Write));
                Console.WriteLine(string.Format("Is modification granted for Employee: {0}", isWriteGranted));

                MiddleTierSerializableObjectLayerClient securedObjectLayerClient = new MiddleTierSerializableObjectLayerClient(wcfSecuredClient);
                SerializableObjectLayerClient           objectLayerClient        = new SerializableObjectLayerClient(securedObjectLayerClient, dictionary);
                UnitOfWork uow = new UnitOfWork(objectLayerClient);
                Console.WriteLine("\nRead all available Employee objects:");
                foreach (Employee obj in new XPCollection(uow, typeof(Employee)))
                {
                    Console.WriteLine(obj.Name);
                }
                Console.WriteLine("\nTry to modify object: ");
                try {
                    Employee employee = uow.FindObject <Employee>(new BinaryOperator("Name", "Peter"));
                    Console.WriteLine("Object name: " + employee.Name);
                    employee.Name += "_modified";
                    uow.CommitChanges();
                    Console.WriteLine("New object name: " + employee.Name);
                }
                catch (Exception e) {
                    Console.WriteLine("Error occured: " + e.Message);
                }
            }
            catch (Exception e) {
                Console.WriteLine(e.Message + Environment.NewLine + e.StackTrace);
            }
            Console.WriteLine();
        }