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()); } }
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)); }