コード例 #1
0
        public ActionResult Index(LoginModel model)
        {
            if (ModelState.IsValid)
            {
                try
                {
                    var context       = new ContextLogin();
                    var licenciaModel = new LicenciasaplicacionService(_dominio);
                    context.BaseDatos = licenciaModel.Basedatos;
                    context.Azureblob = licenciaModel.Azureblob;
                    using (var startupService = new StartupService(context, context.BaseDatos))
                    {
                        if (startupService.ExisteAdmin()) //esto no deberia estar aqui!
                        {
                            HttpCookie securityCookie;
                            if (_loginService.Login(_dominio, model.Usuario, model.Contraseña, out securityCookie))
                            {
                                //ensure != null
                                securityCookie.Expires = DateTime.Now.AddMinutes(120);
                                Response.Cookies.Add(securityCookie);
                                if (model.Recordarme)
                                {
                                    WebHelper.CreateCookie("login", $"{model.Usuario}#{licenciaModel.Basedatos}");
                                }
                                else
                                {
                                    WebHelper.RemoveCookie();
                                }

                                return(RedirectToLocal(model.ReturUrl));
                            }

                            ModelState.AddModelError("", "Usuario, contraseña o base de datos incorrectas");
                        }
                        else
                        {
                            return(RedirectToAction("Admin", "Startup", new { id = licenciaModel.Basedatos }));
                        }
                    }
                }
                catch (LicenciaException ex)
                {
                    ModelState.AddModelError("", ex.Message); //añadir lenguaje settings
                }
                catch (UsuarioactivoException ex)
                {
                    ModelState.AddModelError("", ex.Message); //añadir lenguaje settings
                }
                catch (UsuarioensuoException ex)
                {
                    model.Usuariobloqueado = true;
                }

                //Rai
                catch (CambiarEmpresaException ex)
                {
                    ModelState.AddModelError("", ex.Message); //añadir lenguaje settings
                }
                catch (Exception ex)
                {
                    ModelState.AddModelError("", "Usuario, contraseña o base de datos incorrectas");//añadir lenguaje settings
                }
            }

            return(View(model));
        }