コード例 #1
0
ファイル: Program.cs プロジェクト: windygu/SistemaGestion
        private static void MockUser()
        {
            using (var uow = Ioc.Container.Get <IGestionAdministrativaUow>())
            {
                // var defaultUserId = Guid.Parse("a1ef533d-4016-497c-b065-61de49926181"); //Gabriel
                var defaultUserId = Guid.Parse("004045db-2b27-4ad7-8a96-a7b372aae7cf"); //Maria
                // var defaultUserId = Guid.Parse("f273ae90-a217-49f8-a581-7df22b150ba0"); //Abel


                var defaultSucursalId = 1;

                //Validate credentials through the authentication service
                Operador user = uow.Operadores.Obtener(o => o.Id == defaultUserId
                                                       //, o => o.Roles,
                                                       //  o => o.Personal
                                                       //  ,o => o.Personal.Provincia,
                                                       //o => o.Personal.Localidad,
                                                       //   o => o.OperadorSucursals.Select(op => op.Sucursal)
                                                       );

                Sucursal sucursal = uow.Sucursales.Obtener(s => s.Id == defaultSucursalId);

                //Get the current principal object
                GestionAdministrativaPrincipal gestionAdministrativaPrincipal = Thread.CurrentPrincipal as GestionAdministrativaPrincipal;
                if (gestionAdministrativaPrincipal == null)
                {
                    throw new ArgumentException("The application's default thread principal must be set to a CustomPrincipal object on startup.");
                }

                //Authenticate the user
                gestionAdministrativaPrincipal.Identity = new GestionAdministrativaIdentity(user, sucursal);
            }
        }
コード例 #2
0
        private static void Main()
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);

            #if (!DEBUG)
            Application.SetUnhandledExceptionMode(UnhandledExceptionMode.CatchException);
            Application.ThreadException += ApplicationOnThreadException;
            AppDomain.CurrentDomain.UnhandledException += CurrentDomainOnUnhandledException;
            #endif

            AutoMapperConfig.Execute();
            MetadataTypesRegister.InstallForThisAssembly();
            AppDomain.CurrentDomain.UnhandledException += CurrentDomainOnUnhandledException;

            using (var kernel = new StandardKernel())
            {
                //Configurar bindings
                IoCConfig.Configure(kernel);

                //Set global container.
                Ioc.Container = new NinjectIocContainer(kernel);
                //Framework.Ioc.Ninject. = new NinjectIocContainer(kernel);

                //Config log4net
                log4net.Config.DOMConfigurator.Configure();

                MessageBoxDisplayService = Ioc.Container.Get<IMessageBoxDisplayService>();

                ////  Create a custom principal with an anonymous identity at startup
                var gestionAdministrativaPrincipal = new GestionAdministrativaPrincipal();
                AppDomain.CurrentDomain.SetThreadPrincipal(gestionAdministrativaPrincipal);

            #if(MOCK_SECURITY)
                            MockUser();
            #else
                using (var login = kernel.Get<FrmLogin>())
                {
                    var result = login.ShowDialog();

                    if (result == DialogResult.Cancel)
                    {
                        Application.Exit();
                        return;
                    }
                }
            #endif
                RunAfterLoginTasks();
                var mainForm = kernel.Get<FrmPrincipal>();

                Application.Run(mainForm);
            }
        }
コード例 #3
0
ファイル: Program.cs プロジェクト: windygu/SistemaGestion
        private static void Main()
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);

#if (!DEBUG)
            Application.SetUnhandledExceptionMode(UnhandledExceptionMode.CatchException);
            Application.ThreadException += ApplicationOnThreadException;
            AppDomain.CurrentDomain.UnhandledException += CurrentDomainOnUnhandledException;
#endif

            AutoMapperConfig.Execute();
            MetadataTypesRegister.InstallForThisAssembly();
            AppDomain.CurrentDomain.UnhandledException += CurrentDomainOnUnhandledException;

            using (var kernel = new StandardKernel())
            {
                //Configurar bindings
                IoCConfig.Configure(kernel);

                //Set global container.
                Ioc.Container = new NinjectIocContainer(kernel);
                //Framework.Ioc.Ninject. = new NinjectIocContainer(kernel);

                //Config log4net
                log4net.Config.DOMConfigurator.Configure();

                MessageBoxDisplayService = Ioc.Container.Get <IMessageBoxDisplayService>();

                ////  Create a custom principal with an anonymous identity at startup
                var gestionAdministrativaPrincipal = new GestionAdministrativaPrincipal();
                AppDomain.CurrentDomain.SetThreadPrincipal(gestionAdministrativaPrincipal);

            #if (MOCK_SECURITY)
                MockUser();
            #else
                using (var login = kernel.Get <FrmLogin>())
                {
                    var result = login.ShowDialog();

                    if (result == DialogResult.Cancel)
                    {
                        Application.Exit();
                        return;
                    }
                }
            #endif
                RunAfterLoginTasks();
                var mainForm = kernel.Get <FrmPrincipal>();

                Application.Run(mainForm);
            }
        }
コード例 #4
0
        private void BtnIngresar_Click(object sender, EventArgs e)
        {
            var clearTextPassword = TxtPassword.Text;
            var username          = CbxUsuario.Usuario;

            this.FormErrorProvider.Clear();

            if (string.IsNullOrEmpty(username))
            {
                this.FormErrorProvider.SetError(CbxUsuario, "Debe ingresar un usuario");
                this.DialogResult = DialogResult.None;
                return;
            }

            if (string.IsNullOrEmpty(clearTextPassword))
            {
                this.FormErrorProvider.SetError(TxtPassword, "Debe ingresar una clave");
                this.DialogResult = DialogResult.None;
                return;
            }

            if (UcSucursales.Sucursal == null)
            {
                this.FormErrorProvider.SetError(UcSucursales, "Debe seleccionar una sucursal");
                this.DialogResult = DialogResult.None;
                return;
            }

            try
            {
                //Validate credentials through the authentication service
                Operador user     = _authenticationService.AuthenticateUser(username, clearTextPassword);
                Sucursal sucursal = UcSucursales.Sucursal;

                //Get the current principal object
                GestionAdministrativaPrincipal laPazPrincipal = Thread.CurrentPrincipal as GestionAdministrativaPrincipal;
                if (laPazPrincipal == null)
                {
                    throw new ArgumentException("The application's default thread principal must be set to a CustomPrincipal object on startup.");
                }


                var sucursalValida = user.OperadoresSucursales.Any(s => s.SucursalId == sucursal.Id);
                if (!sucursalValida)
                {
                    this.FormErrorProvider.SetError(UcSucursales, "No esta habilitado para ingresar con esta sucursal");
                    this.DialogResult = DialogResult.None;
                    return;
                }

                if (RolesAceptados != null && RolesAceptados.Any())
                {
                    if (!(user.Roles.Select(r => r.Description).Any(r => RolesAceptados.Any(ra => ra == r))))
                    {
                        _messageBoxDisplayService.ShowError(Resources.ErrorMessageRolesRequeridos);
                        this.DialogResult = DialogResult.None;
                        return;
                    }
                }

                if (CambiarIdentity)
                {
                    //Authenticate the user
                    laPazPrincipal.Identity = new GestionAdministrativaIdentity(user, sucursal);
                }

                UltimoOperadorIngresado = user;
            }
            catch (UnauthorizedAccessException)
            {
                _messageBoxDisplayService.ShowError("La credenciales ingresadas no son correctas");
                this.DialogResult = DialogResult.None;
            }
        }