public ActionResult DeleteConfirmed(int id) { UsuarioAutorizado usuarioAutorizado = db.UsuarioAutorizado.Find(id); db.UsuarioAutorizado.Remove(usuarioAutorizado); db.SaveChanges(); return(RedirectToAction("Index")); }
public ActionResult Edit([Bind(Include = "UsuarioAutorizadoId,Usuario,Password,Alcaldia,FechaInicio,FechaFinal")] UsuarioAutorizado usuarioAutorizado) { if (ModelState.IsValid) { db.Entry(usuarioAutorizado).State = EntityState.Modified; db.SaveChanges(); return(RedirectToAction("Index")); } return(View(usuarioAutorizado)); }
public ActionResult Create([Bind(Include = "UsuarioAutorizadoId,Usuario,Password,Alcaldia,FechaInicio,FechaFinal")] UsuarioAutorizado usuarioAutorizado) { if (ModelState.IsValid) { db.UsuarioAutorizado.Add(usuarioAutorizado); db.SaveChanges(); return(RedirectToAction("Index")); } return(View(usuarioAutorizado)); }
// GET: Cnp/UsuarioAutorizadoes/Delete/5 public ActionResult Delete(int?id) { if (id == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } UsuarioAutorizado usuarioAutorizado = db.UsuarioAutorizado.Find(id); if (usuarioAutorizado == null) { return(HttpNotFound()); } return(View(usuarioAutorizado)); }
public UsuarioAutorizado LoginUsuario(string usuario, string contrasenia) { try { UsuarioAutorizado oUsuarioAutorizado = new UsuarioAutorizado(); var qUsuario = (from a in ctx.Usuarios join b in ctx.Personas on a.PersonaId equals b.PersonaId join c in ctx.Parametros on new { a = a.RolId, b = 100 } equals new { a = c.ParametroId, b = c.GrupoId } where a.NombreUsuario == usuario && a.Contrasenia == contrasenia select new UsuarioAutorizado { UsuarioId = a.UsuarioId, PersonaId = a.PersonaId, EmpresaId = a.EmpresaId, NombreUsuario = a.NombreUsuario, NombreCompleto = b.Nombres + " " + b.ApellidoPaterno, FechaCaduca = a.FechaCaduca.Value, RolId = a.RolId, foto = b.Foto, Rol = c.Valor1 }).FirstOrDefault(); if (qUsuario != null) { var qAutu = GetAutorizacion(qUsuario.RolId); qUsuario.Autorizacion = qAutu; } else { return(null); } return(qUsuario); } catch (Exception ex) { return(null); } }
/// <summary> /// Actualiza la tabla de usuario autorizado con los datos del nuevo inicio de sesión /// </summary> /// <param name="usuarioAutorizado">Usuario Autorizado con información de Token, Hora de Registro, Permisos, etc.</param> /// <returns>Regresa verdadero si actualizó el usuario</returns> public static bool ActualizarUsuarioAutorizado(UsuarioAutorizado usuarioAutorizado) { string query = "INSERT INTO UsuarioAutorizado (Token, Usuario, HoraRegistro, TiempoPrestamo, Permisos, Cliente) " + "VALUES (@Token, @Usuario, @HoraRegistro, @TiempoPrestamo, @Permisos, @Cliente)"; using (SqlConnection sqlConnection = new SqlConnection(ConfigurationManager.ConnectionStrings["ConnectionStringBD"].ConnectionString)) { sqlConnection.Open(); using (SqlCommand sqlCommand = new SqlCommand(query, sqlConnection)) { #region llenar el comando con parametros sqlCommand.Parameters.AddWithValue("@Token", usuarioAutorizado.Token); sqlCommand.Parameters.AddWithValue("@Usuario", usuarioAutorizado.Usuario); sqlCommand.Parameters.AddWithValue("@HoraRegistro", usuarioAutorizado.HoraRegistro); sqlCommand.Parameters.AddWithValue("@TiempoPrestamo", 1337); sqlCommand.Parameters.AddWithValue("@Permisos", usuarioAutorizado.Permisos); sqlCommand.Parameters.AddWithValue("@Cliente", usuarioAutorizado.Cliente); #endregion //regresar el resultado return sqlCommand.ExecuteNonQuery() > 0 ? true : false; } } }
public string IniciaSesion(string usuario, string contrasena, string recordar) { //HttpContext.Current.Response.AppendHeader("Access-Control-Allow-Origin", "*"); //verificar si el usuario y la contraseña son correctos UsuarioAutorizado usuarioAutorizado = AutentificacionBD.IniciaSesion(usuario, contrasena); //if ((Plataforma.AppID == "zeek" && usuarioAutorizado.Plataforma == 0)||(Plataforma.AppID == "CMovil" && usuarioAutorizado.Plataforma == 1)) if ( usuarioAutorizado.Plataforma == 0 || usuarioAutorizado.Plataforma == 1 || usuarioAutorizado.Plataforma == 2 || usuarioAutorizado.Plataforma == 3) { //si el usuario y la contraseña son correctas, verificar el estado de su factura if (usuarioAutorizado.Status == (int)TipoEstadoAutentificacion.Autorizado) { //traer el estado de la factura int estadoFactura = AutentificacionBD.EstadoFactura(usuarioAutorizado.Cliente); //si tiene factura(s) pendiente(s), asignar al estado -1 significa que no hay factura pendiente if (estadoFactura != -1) { if (estadoFactura == 0) /// se cancela el servicio por falta de pago. { usuarioAutorizado.Status = (int)TipoEstadoAutentificacion.FaltaPago; } else { usuarioAutorizado.Status = (int)TipoEstadoAutentificacion.ProximoAVencer; } } } //si el usuario y contraseña fueron correctos y no tiene el servicio suspendido por factura if (usuarioAutorizado.Status == (int)TipoEstadoAutentificacion.Autorizado || usuarioAutorizado.Status == (int)TipoEstadoAutentificacion.ProximoAVencer) { //buscar si hay aviso global usuarioAutorizado.MensajeGlobal = AutentificacionBD.AvisoGlobal(); //verificar si es una subcuenta if (usuarioAutorizado.Permisos[0] == 7 || usuarioAutorizado.Permisos[1] == 1 || usuarioAutorizado.Permisos[1] == 2) usuarioAutorizado.Nombre = AutentificacionBD.NombreSubcuenta(usuarioAutorizado.Usuario);//se cambia el nombre del usuario por la descripción de la subcuenta. //validar el token del usuario, si no existe en base de datos, crea uno. usuarioAutorizado.Token = AutentificacionBD.ValidaToken(usuarioAutorizado.Usuario); //eliminar el previo usuario autorizado en bases de datos, si existe. AutentificacionBD.EliminaUsuarioAutorizado(usuarioAutorizado.Usuario); //Actualizar el usuario autorizado en base de datos, con la nueva fecha de registro, utilizando el mismo token AutentificacionBD.ActualizarUsuarioAutorizado(usuarioAutorizado); //Creamos la cookie HttpCookie cookie = System.Web.HttpContext.Current.Request.Cookies["Usuario"]; if (cookie == null) cookie = new HttpCookie("Usuario"); else { HttpContext.Current.Response.Cookies["Usuario"].Expires = DateTime.Now.AddDays(-1); cookie = new HttpCookie("Usuario"); } Codificador codificador = new Codificador(); cookie.Values.Add("UsuarioID", codificador.Encripta(usuarioAutorizado.Usuario)); cookie.Values.Add("Cliente", codificador.Encripta(usuarioAutorizado.Cliente)); cookie.Values.Add("Nombre", codificador.Encripta(usuarioAutorizado.Nombre)); cookie.Values.Add("Token", codificador.Encripta(usuarioAutorizado.Token.ToString())); cookie.Values.Add("Permisos", string.Join(",", usuarioAutorizado.Permisos)); cookie.Values.Add("Status", usuarioAutorizado.Status.ToString()); cookie.Values.Add("Recordar", recordar); if (recordar == "false") cookie.Values.Add("Accesado", "1"); cookie.Values.Add("Version", Plataforma.version); //cookie.Values.Add("Global", codificador.Encripta("360369693134316")); //usuario de globalMaps cookie.Expires = DateTime.Now.AddDays(20); System.Web.HttpContext.Current.Response.Cookies.Add(cookie); } ///Creo un nuevo objeto "UsuarioAutorizado" para solo regresar los datos necesarios a la hora de hacer login UsuarioAutorizado usuarioAutorizadoJson = new UsuarioAutorizado(); usuarioAutorizadoJson.Status = usuarioAutorizado.Status; usuarioAutorizadoJson.Nombre = usuarioAutorizado.Nombre; usuarioAutorizadoJson.MensajePersonal = usuarioAutorizado.MensajePersonal; usuarioAutorizadoJson.MensajeGlobal = usuarioAutorizado.MensajeGlobal; usuarioAutorizadoJson.MensajeEstado = usuarioAutorizado.MensajeEstado; //regresar el usuario autorizado serializado como Json, omitiendo los valores default y los valores nulos. string json = JsonConvert.SerializeObject(usuarioAutorizadoJson, Formatting.None, new JsonSerializerSettings { DefaultValueHandling = DefaultValueHandling.Ignore, NullValueHandling = NullValueHandling.Ignore }); return json; } else { return "plataformaIncorrecta"; } }
/// <summary> /// Método que Autentifica a un usuario en el sistema de coordenada móvil /// </summary> /// <param name="usuario">Nombre del Usuario (No encriptado) la encriptación se hace internamente.</param> /// <param name="contrasena">Contraseña del usuario (No encriptada) la encriptación se hace internamente.</param> /// <returns>Regresa un UsuarioAutorizado que contiene su UsuarioID, Cliente, Descripción, Permisos, Zona, Aviso Personal y Nombre</returns> public static UsuarioAutorizado IniciaSesion(string usuario, string contrasena) { //Encriptamos el usuario y la contraseña Codificador codificador = new Codificador(); string usuarioEncriptado = codificador.Encripta(usuario); string contrasenaEncriptada = codificador.Encripta(contrasena); //query para seleccionar a un usuario en base a su nombre de usuario y contraseña string query = "SELECT u.UsuarioID, u.Cliente, u.Descripcion, u.Permisos, u.Zona, u.aviso_personal, c.Nombre, c.Plataforma " + "FROM Usuario AS u INNER JOIN Cliente AS c ON u.Cliente = c.ClienteID " + "WHERE u.Nombre = @usuario AND u.Contrasena = @contrasena"; //Por default, declaramos un usuario autorizado con contraseña incorrecta. UsuarioAutorizado usuarioAutorizado = new UsuarioAutorizado(); usuarioAutorizado.Status = (int)TipoEstadoAutentificacion.Incorrecto; //abrir conexión a bases de datos, utilizando la cadena de configuración localizada en el archivo web.config using (SqlConnection sqlConnection = new SqlConnection(ConfigurationManager.ConnectionStrings["ConnectionStringBD"].ConnectionString)) { sqlConnection.Open(); using (SqlCommand sqlCommand = new SqlCommand(query, sqlConnection)) { //agregar los parámetros usuario y contraseña al comando a ejecutarse en bases de datos sqlCommand.Parameters.AddWithValue("@usuario", usuarioEncriptado); sqlCommand.Parameters.AddWithValue("@contrasena", contrasenaEncriptada); //ejecutar el comando using (SqlDataReader sqlDataReader = sqlCommand.ExecuteReader()) { //si existe un registro con ese usuario y contraseña if (sqlDataReader.Read()) { #region llenar los campos de usuario usuarioAutorizado.Usuario = (string)sqlDataReader["UsuarioID"]; usuarioAutorizado.Cliente = (string)sqlDataReader["Cliente"]; if (!sqlDataReader.IsDBNull(5)) // el aviso personal puede ser nulo en base de datos usuarioAutorizado.MensajePersonal = (string)sqlDataReader["aviso_personal"]; /* Convertir byte to string System.Text.Encoding enc = System.Text.Encoding.ASCII; string myString = enc.GetString(myByteArray ); */ usuarioAutorizado.Permisos = (byte[])sqlDataReader["Permisos"]; usuarioAutorizado.Nombre = (string)sqlDataReader["Nombre"]; usuarioAutorizado.Plataforma = (int)sqlDataReader["Plataforma"]; //cuentas de aliados comerciales comienzan con <'aliado'>, el cual no se le muestra al cliente if (usuarioAutorizado.Nombre.StartsWith("<")) usuarioAutorizado.Nombre.Substring(usuarioAutorizado.Cliente.IndexOf('>') + 1).Trim(); usuarioAutorizado.HoraRegistro = DateTime.Now; usuarioAutorizado.Status = (int)TipoEstadoAutentificacion.Autorizado; #endregion } } // código para concatenar los avisos de reportes automáticos por vencer if (!string.IsNullOrEmpty(usuarioAutorizado.Cliente)) { if (!usuarioAutorizado.Usuario.EndsWith("SC")) { System.Collections.ArrayList aMensajesDeCliente = new System.Collections.ArrayList(); query = "SELECT aviso FROM AutomaticosPorVencer WHERE (clienteid = '" + usuarioAutorizado.Cliente + "')"; using (SqlCommand cmd = new SqlCommand(query, sqlConnection)) { using (SqlDataReader rdr = cmd.ExecuteReader()) { while (rdr.Read()) { if (!rdr.IsDBNull(0)) aMensajesDeCliente.Add(rdr.GetString(0)); } } } if (aMensajesDeCliente.Count > 0) { Console.WriteLine("La cuenta autentificada tiene reportes automáticos por vencer"); if (usuarioAutorizado.MensajePersonal == "") { if (aMensajesDeCliente.Count == 1) { usuarioAutorizado.MensajePersonal = "Uno de sus reportes automáticos configurados está por vencer:\n\n"; usuarioAutorizado.MensajePersonal += " - " + aMensajesDeCliente[0].ToString(); usuarioAutorizado.MensajePersonal += "\n\nLe sugerimos ampliar la fecha de término si desea seguir recibiendo el reporte automático."; } else { usuarioAutorizado.MensajePersonal = "Sus siguientes reportes automáticos configurados están por vencer:\n\n"; foreach (string var in aMensajesDeCliente) { usuarioAutorizado.MensajePersonal += " -" + var + "\n"; } usuarioAutorizado.MensajePersonal += "\nLe sugerimos ampliar la fecha de término si desea seguir recibiendo estos reportes automáticos."; } } else { if (aMensajesDeCliente.Count == 1) { usuarioAutorizado.MensajePersonal += "\n\nUno de sus reportes automáticos configurados está por vencer:\n\n"; usuarioAutorizado.MensajePersonal += " - " + aMensajesDeCliente[0].ToString(); usuarioAutorizado.MensajePersonal += "\n\nLe sugerimos ampliar la fecha de término si desea seguir recibiendo el reporte automático."; } else { usuarioAutorizado.MensajePersonal += "\n\nSus siguientes reportes automáticos configurados están por vencer:\n\n"; foreach (string var in aMensajesDeCliente) { usuarioAutorizado.MensajePersonal += " -" + var + "\n"; } usuarioAutorizado.MensajePersonal += "\nLe sugerimos ampliar la fecha de término si desea seguir recibiendo estos reportes automáticos."; } } } } } } } // regresar el usuarioAutorizado, ya sea que lo encontró o no. return usuarioAutorizado; }