protected bool ValidarUsuarioContrasenia(UsuarioEntidad UsuarioEntidadObjeto)
        {
            bool             UsuarioContrasenia  = true;
            string           CadenaConexion      = string.Empty;
            ResultadoEntidad Resultado           = new ResultadoEntidad();
            UsuarioAcceso    UsuarioAccesoObject = new UsuarioAcceso();

            CadenaConexion = SeleccionarConexion(ConstantePrograma.DefensoriaDB_Seguridad);

            Resultado = UsuarioAccesoObject.SeleccionarUsuario(UsuarioEntidadObjeto, CadenaConexion);

            if (Resultado.ResultadoDatos.Tables[0].Rows.Count == 0)
            {
                UsuarioContrasenia = false;
            }
            else
            {
                //string Texto = string.Empty;
                string Contrasenia = string.Empty;
                // UsuarioEntidad UsuarioEntidadGuardar = new UsuarioEntidad();

                Password = EncriptarTexto.Desencriptar(Resultado.ResultadoDatos.Tables[0].Rows[0]["Contrasenia"].ToString());
                //UsuarioEntidadObjeto.Contrasenia= NuevaContrasenia.Trim();
                Texto = EncriptarTexto.Encriptar(UsuarioEntidadObjeto.NuevaContrasenia.Trim());

                if (UsuarioEntidadObjeto.ContraseniaAnterior != Password)
                {
                    UsuarioContrasenia = false;
                }
            }

            return(UsuarioContrasenia);
        }
        public ResultadoEntidad RecuperarContrasenia(UsuarioEntidad UsuarioEntidadObjeto)
        {
            string           CadenaConexion         = string.Empty;
            string           Contrasenia            = string.Empty;
            ResultadoEntidad ResultadoEntidadObjeto = new ResultadoEntidad();
            UsuarioAcceso    UsuarioAccesoObjeto    = new UsuarioAcceso();

            if (UsuarioEntidadObjeto.CuentaUsuario == "")
            {
                ResultadoEntidadObjeto.ErrorId          = (int)ConstantePrograma.RecuperarContrasenia.CuentaNoValida;
                ResultadoEntidadObjeto.DescripcionError = TextoError.RecuperarCuentaNoValida;
            }
            else
            {
                CadenaConexion = SeleccionarConexion(ConstantePrograma.DefensoriaDB_Seguridad);

                ResultadoEntidadObjeto = UsuarioAccesoObjeto.SeleccionarUsuario(UsuarioEntidadObjeto, CadenaConexion);

                if (ResultadoEntidadObjeto.ResultadoDatos.Tables[0].Rows.Count == 0)
                {
                    ResultadoEntidadObjeto.ErrorId          = (int)ConstantePrograma.RecuperarContrasenia.CuentaNoExiste;
                    ResultadoEntidadObjeto.DescripcionError = TextoError.RecuperarCuentaNoExiste;
                }
                else
                {
                    Contrasenia = EncriptarTexto.Desencriptar(ResultadoEntidadObjeto.ResultadoDatos.Tables[0].Rows[0]["Contrasenia"].ToString());

                    EnviarCorreo(UsuarioEntidadObjeto.AplicacionId, UsuarioEntidadObjeto.CuentaUsuario, Contrasenia, ConstantePrograma.AsuntoRecuperacionContrasenia, ConstantePrograma.CorreoRecuperarContrasenia);

                    ResultadoEntidadObjeto.ErrorId = (int)ConstantePrograma.RecuperarContrasenia.CorreoEnviado;
                }
            }

            return(ResultadoEntidadObjeto);
        }
        protected ResultadoEntidad EliminarUsuario(SqlConnection Conexion, SqlTransaction Transaccion, Int16 UsuarioId)
        {
            ResultadoEntidad ResultadoEntidadObjeto = new ResultadoEntidad();
            UsuarioAcceso    UsuarioAccesoObjeto    = new UsuarioAcceso();

            ResultadoEntidadObjeto = UsuarioAccesoObjeto.EliminarUsuario(Conexion, Transaccion, UsuarioId);

            return(ResultadoEntidadObjeto);
        }
        public ResultadoEntidad SeleccionarUsuario(UsuarioEntidad UsuarioEntidadObjeto)
        {
            string           CadenaConexion      = string.Empty;
            ResultadoEntidad Resultado           = new ResultadoEntidad();
            UsuarioAcceso    UsuarioAccesoObject = new UsuarioAcceso();

            CadenaConexion = SeleccionarConexion(ConstantePrograma.DefensoriaDB_Seguridad);

            Resultado = UsuarioAccesoObject.SeleccionarUsuario(UsuarioEntidadObjeto, CadenaConexion);

            return(Resultado);
        }
        public ResultadoEntidad GuardarUsuario(UsuarioEntidad UsuarioObjetoEntidad)
        {
            bool             EnviarCorreoUsuario    = false;
            string           CadenaConexion         = string.Empty;
            string           Contrasenia            = string.Empty;
            ResultadoEntidad ResultadoObjetoEntidad = new ResultadoEntidad();
            UsuarioAcceso    UsuarioObjetoAcceso    = new UsuarioAcceso();

            CadenaConexion = SeleccionarConexion(ConstantePrograma.DefensoriaDB_Seguridad);

            if (UsuarioObjetoEntidad.UsuarioId == 0)
            {
                // Validar que el usuario no se repita
                if (ExisteCuentaUsuario(UsuarioObjetoEntidad.CuentaUsuario))
                {
                    ResultadoObjetoEntidad.ErrorId          = (int)ConstantePrograma.Usuario.ExisteCuentaUsuario;
                    ResultadoObjetoEntidad.DescripcionError = TextoError.UsuarioCuentaExiste.Replace("{0}", UsuarioObjetoEntidad.CuentaUsuario);
                }
                else
                {
                    // Hay que generar una contraseña aleatoria
                    Contrasenia = CadenaAleatoria.GenerarCadenaAleatoria(5);
                    UsuarioObjetoEntidad.Contrasenia = EncriptarTexto.Encriptar(Contrasenia);
                    EnviarCorreoUsuario = true;

                    ResultadoObjetoEntidad = UsuarioObjetoAcceso.InsertarUsuario(UsuarioObjetoEntidad, CadenaConexion);
                }
            }
            else
            {
                ResultadoObjetoEntidad = UsuarioObjetoAcceso.ActualizarUsuario(UsuarioObjetoEntidad, CadenaConexion);
            }

            if (ResultadoObjetoEntidad.ErrorId == (int)ConstantePrograma.Usuario.GuardadoExitoso)
            {
                // Hay que enviar un correo electrónico con la contraseña generada
                if (EnviarCorreoUsuario)
                {
                    EnviarCorreo(UsuarioObjetoEntidad.AplicacionId, UsuarioObjetoEntidad.CuentaUsuario, Contrasenia, ConstantePrograma.AsuntoUsuarioNuevo, ConstantePrograma.CorreoNuevoUsuario);
                }
            }

            return(ResultadoObjetoEntidad);
        }
        public ResultadoEntidad EliminarUsuario(string CadenaUsuarioId)
        {
            string CadenaConexion = string.Empty;

            string[]         ArrayUsuario;
            SqlTransaction   Transaccion;
            SqlConnection    Conexion;
            ResultadoEntidad ResultadoEntidadObjeto = new ResultadoEntidad();
            UsuarioAcceso    UsuarioAccesoObjeto    = new UsuarioAcceso();

            if (CadenaUsuarioId != "")
            {
                ArrayUsuario = CadenaUsuarioId.Split(',');

                CadenaConexion = SeleccionarConexion(ConstantePrograma.DefensoriaDB_Seguridad);

                Conexion = new SqlConnection(CadenaConexion);
                Conexion.Open();

                Transaccion = Conexion.BeginTransaction();

                foreach (string UsuarioId in ArrayUsuario)
                {
                    if (UsuarioId != "")
                    {
                        ResultadoEntidadObjeto = EliminarUsuario(Conexion, Transaccion, Int16.Parse(UsuarioId));

                        if (ResultadoEntidadObjeto.ErrorId != (int)ConstantePrograma.Usuario.EliminacionExitosa)
                        {
                            Transaccion.Rollback();
                            break;
                        }
                    }
                }

                if (ResultadoEntidadObjeto.ErrorId == (int)ConstantePrograma.Usuario.EliminacionExitosa)
                {
                    Transaccion.Commit();
                }
            }

            return(ResultadoEntidadObjeto);
        }
        public ResultadoEntidad CambiarContrasenia(UsuarioEntidad UsuarioEntidadActual)
        {
            string CadenaConexion = string.Empty;
            string Contrasenia    = string.Empty;

            ResultadoEntidad ResultadoEntidadObjeto = new ResultadoEntidad();
            UsuarioAcceso    UsuarioAccesoObjeto    = new UsuarioAcceso();

            CadenaConexion = SeleccionarConexion(ConstantePrograma.DefensoriaDB_Seguridad);

            if (ValidarCambiarContrasenia(UsuarioEntidadActual, ref ResultadoEntidadObjeto))
            {
                //Texto = EncriptarTexto.Encriptar(NuevaContrasenia);
                UsuarioEntidadActual.NuevaContrasenia = Texto;
                //UsuarioAccesoObjeto.Texto = EncriptarTexto.Encriptar(Contrasenia);
                UsuarioAccesoObjeto.CambiarContrasenia(UsuarioEntidadActual, CadenaConexion);
            }

            return(ResultadoEntidadObjeto);
        }
Exemple #8
0
        /// <summary>
        /// Guarda los datos del acceso del usuario
        /// </summary>
        /// <param name="token">Datos del token</param>
        /// <param name="usuarioId">Id del usuario</param>
        /// <param name="ip">Ip de la cual se conecta el usuario</param>
        /// <param name="navegador">Navegador del cual se conecta el usuario</param>
        /// <returns></returns>
        public async Task <bool> GuardarAccesoAsync(TokenDTO token, int usuarioId, string ip, string navegador)
        {
            IPGeoLocation ipGeoLocation = new IPGeoLocation();

            if (datosIP == null)
            {
                datosIP = await ObtenerDatosIPAsync(ip, ipGeoLocation);
            }
            var usuarioAcceso = new UsuarioAcceso();

            usuarioAcceso.Ciudad           = datosIP.city;
            usuarioAcceso.Estado           = datosIP.subdivision;
            usuarioAcceso.Navegador        = navegador;
            usuarioAcceso.UsuarioId        = usuarioId;
            usuarioAcceso.Fecha            = DateTime.Now;
            usuarioAcceso.Token            = token.Token.Split(".")[2];
            usuarioAcceso.Activo           = true;
            usuarioAcceso.SistemaOperativo = "Default";
            usuarioAcceso.RefreshToken     = token.RefreshToken;
            usuarioAcceso.Navegador        = "Default";
            contexto.UsuarioAcceso.Add(usuarioAcceso);
            contexto.SaveChanges();
            return(true);
        }
        public ResultadoEntidad IdentificarUsuario(UsuarioEntidad UsuarioObjetoEntidad)
        {
            string           ContraseniaEncriptada = string.Empty;
            string           DatabasePassword      = string.Empty;
            string           CadenaConexion        = string.Empty;
            HttpContext      Contexto = HttpContext.Current;
            ResultadoEntidad ResultadoObjetoEntidad = new ResultadoEntidad();
            UsuarioAcceso    UsuarioObjetoAcceso    = new UsuarioAcceso();


            CadenaConexion = SeleccionarConexion(ConstantePrograma.DefensoriaDB_Seguridad);

            ResultadoObjetoEntidad = UsuarioObjetoAcceso.SeleccionarUsuario(UsuarioObjetoEntidad, CadenaConexion);

            if (ResultadoObjetoEntidad.ErrorId == (int)ConstantePrograma.IdentificarUsuario.ValorPorDefecto)
            {
                if (ResultadoObjetoEntidad.ResultadoDatos.Tables[0].Rows.Count == 0)
                {
                    ResultadoObjetoEntidad.ErrorId = (int)ConstantePrograma.IdentificarUsuario.UsuarioContraseniaIncorrecta;
                }
                else
                {
                    if (UsuarioObjetoEntidad.Contrasenia == ConfigurationManager.AppSettings["Activos.Web.RememberPassword"].ToString())
                    {
                        ContraseniaEncriptada = ObtenerContrasenia();
                    }
                    else
                    {
                        ContraseniaEncriptada = EncriptarTexto.Encriptar(UsuarioObjetoEntidad.Contrasenia);
                    }

                    DatabasePassword = ResultadoObjetoEntidad.ResultadoDatos.Tables[0].Rows[0]["Contrasenia"].ToString();

                    if (ContraseniaEncriptada == DatabasePassword)
                    {
                        UsuarioObjetoEntidad.UsuarioId       = Int16.Parse(ResultadoObjetoEntidad.ResultadoDatos.Tables[0].Rows[0]["UsuarioId"].ToString());
                        UsuarioObjetoEntidad.AplicacionId    = (int)ConstantePrograma.AplicacionId.Activos;
                        UsuarioObjetoEntidad.RolId           = Int16.Parse(ResultadoObjetoEntidad.ResultadoDatos.Tables[0].Rows[0]["RolId"].ToString());
                        UsuarioObjetoEntidad.EstatusId       = Int16.Parse(ResultadoObjetoEntidad.ResultadoDatos.Tables[0].Rows[0]["EstatusId"].ToString());
                        UsuarioObjetoEntidad.Nombre          = ResultadoObjetoEntidad.ResultadoDatos.Tables[0].Rows[0]["Nombre"].ToString();
                        UsuarioObjetoEntidad.ApellidoPaterno = ResultadoObjetoEntidad.ResultadoDatos.Tables[0].Rows[0]["ApellidoPaterno"].ToString();
                        UsuarioObjetoEntidad.ApellidoMaterno = ResultadoObjetoEntidad.ResultadoDatos.Tables[0].Rows[0]["ApellidoMaterno"].ToString();

                        if (UsuarioObjetoEntidad.EstatusId == (int)ConstantePrograma.EstatusUsuario.Activo)
                        {
                            BoletoAutenticacion.IdentificarUsuario(UsuarioObjetoEntidad.CuentaUsuario, Contexto.Session.Timeout);
                            GuardarCookie(ConstantePrograma.CookieCuenta, UsuarioObjetoEntidad.CuentaUsuario, Contexto);
                            Contexto.Session.Add("UsuarioEntidad", UsuarioObjetoEntidad);

                            if (UsuarioObjetoEntidad.RecordarContrasenia)
                            {
                                GuardarCookie(ConstantePrograma.CookieContrasenia, DatabasePassword, Contexto);
                                GuardarCookie(ConstantePrograma.CookieRecordar, ConfigurationManager.AppSettings["Activos.Web.RememberPassword"].ToString(), Contexto);
                            }
                            else
                            {
                                GuardarCookie(ConstantePrograma.CookieContrasenia, "", Contexto);
                                GuardarCookie(ConstantePrograma.CookieRecordar, "", Contexto);
                            }
                        }
                        else
                        {
                            ResultadoObjetoEntidad.ErrorId = (int)ConstantePrograma.IdentificarUsuario.UsuarioInactivo;
                        }
                    }
                    else
                    {
                        ResultadoObjetoEntidad.ErrorId = (int)ConstantePrograma.IdentificarUsuario.UsuarioContraseniaIncorrecta;
                    }
                }
            }

            return(ResultadoObjetoEntidad);
        }
        protected void btningreso_Click(object sender, EventArgs e)
        {
            string sPagina = "~/";

            try
            {
                UpdateProg1.Visible    = true;
                PProgresso.Style.Value = "Display:block;";

                DateTime fFecha = Convert.ToDateTime(Session["fFecha"]);


                sUser = txtuser.Text.ToLower();

                sPassw = txtpassw.Text;
                //Se deshabilita la verificacion de sesion
                //DataTable dtsesionuser = null;
                //dtsesionuser = ProcesoAdmin.Get_User_Sesion_Conteo(sUser);

                //if (dtsesionuser.Rows.Count > 0)
                //{
                //    this.Session["encabemensa"] = "Error de Autenticacion";
                //    this.Session["mensaje"] = "El Usuario" + " " + sUser + " " + "ya tiene" + "<br>" + "una sesion SIGE Activa";
                //    this.Session["cssclass"] = "MensajesSupervisor";
                //    Mensajes_Usuario();
                //    return;


                //}


                //ProcesoAdmin.Get_Obtener_User_Sesion(sUser);

                //Guardar las variables de sesión

                this.Session["sUser"]  = sUser;
                this.Session["sPassw"] = sPassw;

                this.Session["fFecha"] = fFecha;
                //Session["Service"] = 254;
                //Session["Canal"]="1000";


                EUsuario oeUsuario = oUsuario.obtener(sUser, sPassw);


                sCoutry                    = oeUsuario.codCountry;
                sDepartament               = oeUsuario.coddepartam;
                scity                      = oeUsuario.codcity;
                smail                      = oeUsuario.PersonEmail;
                this.Session["smail"]      = smail;
                this.Session["companyid"]  = oeUsuario.companyid;
                this.Session["fotocomany"] = oeUsuario.fotocompany;

                sNombre = oeUsuario.companyName;



                this.Session["sNombre"] = sNombre;

                snameuser = oeUsuario.PersonFirtsname + " " + oeUsuario.PersonSurname;
                this.Session["nameuser"] = snameuser;

                smodul = oeUsuario.Moduloid;
                this.Session["scountry"] = sCoutry;
                this.Session["scity"]    = scity;
                this.Session["personid"] = oeUsuario.Personid;
                this.Session["smodul"]   = smodul;
                idnivel = oeUsuario.idlevel;
                this.Session["idnivel"] = idnivel;

                snamenivel = oeUsuario.leveldescription;
                this.Session["namenivel"]  = snamenivel;
                this.Session["Perfilid"]   = oeUsuario.Perfilid;
                this.Session["nameperfil"] = oeUsuario.NamePerfil;
                this.Session["Service"]    = 254;
                this.Session["Canal"]      = "0";
                this.Session["Nivel"]      = 0;

                Sesion_Users su = new Sesion_Users();
                //string HostName =System.Net.Dns.GetHostByAddress(Request.UserHostAddress).HostName;
                //string RemoteHost = HttpContext.Current.Request.UserHostAddress;
                //string RemoteHost = HttpContext.Current.Request.ServerVariables["HTTP_USER_ADDR"];


                string RemoteHost = Request.ServerVariables["REMOTE_ADDR"];



                su.Registrar_Auditoria(this.Session["sUser"].ToString(), Convert.ToInt32(this.Session["companyid"]), RemoteHost, DateTime.Now);


                ObtenerDatosEnvioMail();

                if (oeUsuario != null)
                {
                    UsuarioAcceso  oUsuarioAcceso  = new UsuarioAcceso();
                    EUsuarioAcceso oeUsuarioAcceso = new EUsuarioAcceso();
                    oeUsuarioAcceso = oUsuarioAcceso.obtenerAleatorioxUsuario(sUser, sPassw);
                    UniqueLogin(sUser);
                    AplicacionWeb  oAplicacionWeb  = new AplicacionWeb();
                    EAplicacionWeb oeAplicacionWeb = oAplicacionWeb.obtenerAplicacion(sCoutry, smodul);
                    this.Session["oeAplicacionWeb"] = oeAplicacionWeb;
                    this.Session["cod_applucky"]    = oeAplicacionWeb.codapplucky;
                    this.Session["abr_app"]         = oeAplicacionWeb.abrapp;
                    this.Session["app_url"]         = oeAplicacionWeb.appurl;
                    sPagina         = oeAplicacionWeb.HomePage;
                    oeUsuarioAcceso = null;
                    oeAplicacionWeb = null;
                    oAplicacionWeb  = null;
                }
                //PProgresso.Style.Value = "Display:none";
                //PProgresso_ModalPopupExtender.Hide();
            }



            catch (Exception ex)
            {
                Lucky.CFG.Exceptions.Exceptions exs = new Lucky.CFG.Exceptions.Exceptions(ex);
                string errMessage = "";
                if (ex.Message.Substring(0, 20) == "Error en la Autenticación de Usuario" ||
                    ex.Message.Substring(0, 20) == "La Clave es Errrada o Usuario no Existe")
                {
                    //errMessage = new Lucky.CFG.Util.Functions().preparaMsgError(ex.Message);


                    //this.Response.Redirect("~/err_mensaje.aspx?msg=" + errMessage, true);
                    this.Session["encabemensa"] = "Error de Autenticación";
                    this.Session["mensaje"]     = "Usuario y/o Clave Erradas";
                    this.Session["cssclass"]    = "MensajesSupervisor";
                    Mensajes_Usuario();
                    return;
                }
                else
                {
                    //Enviar error a fin de evitar que este se pierda con el redirect de página.

                    exs.Country = "SIGE(" + ConfigurationManager.AppSettings["COUNTRY"] + ") - Usuario " + this.Session["sUser"].ToString();
                    string sCountry = ConfigurationManager.AppSettings["COUNTRY"];
                    //exs.errorWebsite(sCountry);
                    //errMessage += new Lucky.CFG.Util.Functions().preparaMsgError(ex.Message);
                    errMessage = "Error de Autenticacion para " + ' ' + sUser + ' ' + "Clave errada o Usuario Inactivo";
                    this.Session["errMessage"] = errMessage;
                    //this.Response.Redirect("~/err_mensaje.aspx?msg=" + errMessage, true);
                    this.Session["encabemensa"] = "Error de Autenticacion";
                    this.Session["mensaje"]     = "Usuario y/o Clave Erradas";
                    this.Session["cssclass"]    = "MensajesSupervisor";
                    ProcesoAdmin.Get_Delete_Sesion_User(sUser);
                    Mensajes_Usuario();
                    return;
                }
            }

            EEntrySeccion oeSeccion = oSeccion.PrimerAcceso(sUser);

            if (oeSeccion.seccionname == "1")
            {
                Response.Redirect("Cambio_pswd.aspx", true);
            }
            //if (Request.Cookies["SIGE_URLRedirect"] == null)
            //{


            //    this.Response.Redirect("~/" + sPagina, true);



            //}
            else
            {
                //HttpCookie hcURLRedirect = Request.Cookies["SIGE_URLRedirect"];
                this.Response.Redirect("~/" + sPagina, true);
            }
        }