public IHttpActionResult Authenticated(LoginRequest login)
        {
            if (login == null)
            {
                throw new HttpResponseException(HttpStatusCode.BadRequest);
            }
            clsUsuario Objusuario = new clsUsuario();
            var        usuario    = Objusuario.ExisteUsuario(login.UserName, login.Password).Where(x => x.estado == true);

            if (usuario.Count() > 0)
            {
                var token = TokenGenerator.GenerateTokenJwt(login.UserName);
                return(Ok(token));
            }
            else
            {
                return(Unauthorized());
            }
        }
Exemple #2
0
        public ActionResult CrearUsuario(string txtNombreUsuario, int listIdRol, string txtContrasena, string txtConfirmarContrasena)
        {
            try
            {
                if (txtContrasena.Equals(txtConfirmarContrasena))
                {
                    if (!txtNombreUsuario.Equals("") && !txtContrasena.Equals("") && !txtConfirmarContrasena.Equals(""))
                    {
                        if (!ModelState.IsValid)
                        {
                            ModelState.AddModelError("", "Usuario o Password Incorrectos");
                            return(View());
                        }
                        else
                        {
                            clsUsuario         ObjUsuario          = new clsUsuario();
                            clsBitacoraUsuario objBitacoraUsuarios = new clsBitacoraUsuario();

                            int existeUsuario = ObjUsuario.ConsultarExisteNombreUsuario(txtNombreUsuario);

                            if (existeUsuario != 1)
                            {
                                bool Resultado = ObjUsuario.AgregarUsuario(listIdRol, txtNombreUsuario, txtConfirmarContrasena, true);

                                var nuevoUsuario = ObjUsuario.ExisteUsuario(txtNombreUsuario, Seguridad.Encriptar(txtConfirmarContrasena)).Where(x => x.estado == true);

                                string nombreUsuario = (string)Session["Usuario"];
                                int    IdUsuario     = ObjUsuario.ConsultarIdUsuario(nombreUsuario);

                                objBitacoraUsuarios.AgregarBitacoraUsuario(IdUsuario, nombreUsuario, DateTime.Now, listIdRol, txtNombreUsuario, Seguridad.Encriptar(txtConfirmarContrasena), true);

                                if (Resultado)
                                {
                                    TempData["exitoMensaje"] = "El usuario se ha creado exitosamente.";
                                    return(RedirectToAction("CrearUsuario"));
                                }
                                else
                                {
                                    TempData["errorMensaje"] = "Se presentó un error al intentar insertar este elemento, revise que los datos coincidan con lo que especifican los campos";
                                    return(View("CrearUsuario"));
                                }
                            }
                            else
                            {
                                TempData["errorMensaje"] = "El nombre de usuario insertado ya existe, intente con otro nombre.";
                                return(RedirectToAction("CrearUsuario"));
                            }
                        }
                    }
                    else
                    {
                        TempData["errorMensaje"] = "Inserte un nombre de usuario.";
                        return(RedirectToAction("CrearUsuario"));
                    }
                }
                else
                {
                    TempData["errorMensaje"] = "Las contraseñas ingresadas en los campos no coinciden.";
                    return(RedirectToAction("CrearUsuario"));
                }
            }
            catch (Exception)
            {
                TempData["errorMensaje"] = "Todos los campos son obligatorios.";
                return(CrearUsuario());
            }
        }
        public ActionResult Login(LoginViewModel model, string returnUrl, string Password)
        {
            try
            {
                if (!ModelState.IsValid)
                {
                    ModelState.AddModelError("", "Usuario o Password Incorrectos");
                    return(View());
                }
                else
                {
                    clsUsuario Objusuario = new clsUsuario();

                    IList <DAL.ConsultarClaveUsuarioResult> clave = new List <DAL.ConsultarClaveUsuarioResult>();

                    int idUsuario = Objusuario.ConsultarIdUsuario(model.Usuario);

                    clave = Objusuario.ConsultarClaveUsuario(idUsuario);

                    string claveEncriptada = Seguridad.Encriptar(Password);

                    if (clave.ElementAt(0).clave.Equals(claveEncriptada))
                    {
                        var usuario = Objusuario.ExisteUsuario(model.Usuario, Seguridad.Encriptar(model.Password)).Where(x => x.estado == true);

                        int Rol    = Objusuario.ConsultarRolUsuario(model.Usuario);
                        int estado = Objusuario.ConsultarEstadoUsuario(model.Usuario);
                        if (estado == 1)
                        {
                            if (usuario.Count() > 0)
                            {
                                Session["US"] = model.Usuario;
                                Session["PW"] = model.Password;

                                Session["Usuario"]   = model.Usuario;
                                Session["idUsuario"] = Objusuario.ConsultarIdUsuario((string)Session["Usuario"]);

                                if (Rol.Equals(1))
                                {
                                    Session["ROLES"] = "Admin";
                                }

                                if (Rol.Equals(2))
                                {
                                    Session["ROLES"] = "Regular";
                                }

                                if (Rol.Equals(3))
                                {
                                    Session["ROLES"] = "Bodega";
                                }

                                string baseUrl = ConfigurationManager.AppSettings["URL_API"];

                                //crea el el encabezado
                                HttpClient client = new HttpClient();
                                client.BaseAddress = new Uri(baseUrl);
                                var contentType = new MediaTypeWithQualityHeaderValue("application/json");
                                client.DefaultRequestHeaders.Accept.Add(contentType);

                                Usuario userModel = new Usuario();
                                userModel.UserName = model.Usuario;
                                userModel.Password = claveEncriptada;

                                string stringData  = JsonConvert.SerializeObject(userModel);
                                var    contentData = new StringContent(stringData, System.Text.Encoding.UTF8, "application/json");

                                HttpResponseMessage response = client.PostAsync("/api/login/authenticate", contentData).Result;
                                var stringJWT = response.Content.ReadAsStringAsync().Result;

                                JWT jwt = new JWT {
                                    Token = stringJWT.Replace("\"", "")
                                };

                                //Aca se crea la sesion
                                Session["token"] = jwt.Token;
                                Session["US"]    = model.Usuario.ToUpper();

                                string userData = "Datos específicos de aplicación para este usuario.";

                                FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(1,
                                                                                                 model.Usuario.ToUpper(),
                                                                                                 DateTime.Now,
                                                                                                 DateTime.Now.AddMinutes(30),
                                                                                                 model.RememberMe,
                                                                                                 userData,
                                                                                                 FormsAuthentication.FormsCookiePath);

                                // Encryptar el ticket.
                                string encTicket = FormsAuthentication.Encrypt(ticket);

                                // Crea la cookie.
                                Response.Cookies.Add(new HttpCookie(FormsAuthentication.FormsCookieName, encTicket));

                                if (!string.IsNullOrEmpty(returnUrl))
                                {
                                    return(Redirect(returnUrl));
                                }
                                else
                                {
                                    return(RedirectToAction("Index", "Home"));
                                }
                            }
                            else
                            {
                                ModelState.AddModelError("Error de Autenticación", "Usuario o Contaseña Invalida");
                            }
                        }
                        else
                        {
                            ModelState.AddModelError("Error de Autenticación", "El usuario ingresado está deshabilitado");
                        }
                    }
                    else
                    {
                        ModelState.AddModelError("Error de Autenticación", "La contraseña insertada no es correcta, intente de nuevo.");
                    }
                }
            }
            catch (Exception ex)
            {
                ModelState.AddModelError("Error de Autenticación", "Usuario o Contaseña Invalida");
            }
            return(View(model));
        }