コード例 #1
0
        private void userSign(ref Users user, string name, string password, string userHosAddress)
        {
            InvalidCredentialsLog.insertInvalidCredentialsLog(user._usv_co, name, password, "T", "F", userHosAddress);

            try
            {
                user._logTx = new Log_Transaction();
                user._logTx = (Log_Transaction)Session[_nSlogTx];
                if (string.IsNullOrEmpty(user._logTx._ip))
                {
                    user._logTx._ip = userHosAddress;
                }
            }
            catch
            {
                user._logTx = new Log_Transaction(userHosAddress);
            }
            finally { Session.Clear(); }

            user._usd_lastaccess = DateTime.Now;

            user._isnew        = false;
            user._usv_username = name;
            Session[Constants.NameSessionUser] = user;

            // Async
            Log_Transaction.registerUserInfo(user, "SIGNIN:" + user._usv_username);
        }
コード例 #2
0
        /// <summary>
        /// Aplicar un nuevo estado a un pago
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void gvListPays_RowCommand(object sender, GridViewCommandEventArgs e)
        {
            msnMessage.HideMessage();
            if (e.CommandName.Equals("ApplyUpdate"))
            {
                //
                // Inicio de marcacion
                string noPay = e.CommandArgument.ToString();

                GridViewRow row = (GridViewRow)(((ImageButton)e.CommandSource).NamingContainer);

                //GridViewRow row2 = (GridViewRow)(((TextBox)e.CommandSource).NamingContainer);

                string newStatus = ((DropDownList)row.FindControl("dwStatusPay")).SelectedValue;

                string concepto = ((Label)row.FindControl("lblconid")).Text;

                //DataRowView rowView = (DataRowView)row.DataItem;

                //string situacao = rowView["Con_Id"].ToString();

                // string _conid = System.Web.UI.DataBinder.Eval(row, "Con_Id").ToString();
                //string val = (string)this.gvListPays.da [row.RowIndex]["Con_Id"];

                if (string.IsNullOrEmpty(newStatus) || newStatus.Equals("-1"))
                {
                    msnMessage.LoadMessage("Seleccione el NUEVO ESTADO que se le aplicará al pago No." + noPay, UserControl.ucMessage.MessageType.Error);
                }
                else
                {
                    /*validacion solo para usuarios sistemas y finanzas*/

                    if ((_user._usu_tip_id == "04" || _user._usu_tip_id == "08") || concepto == "AJU")
                    {
                        bool answ = Payments.updatePayment(noPay, newStatus);

                        if (!answ)
                        {
                            msnMessage.LoadMessage("Error intentando aplicar el nuevo estado al pedido No." + noPay + "; por favor intente de nuevo.", UserControl.ucMessage.MessageType.Error);
                        }
                        else
                        {
                            msnMessage.LoadMessage("Nuevo estado aplicado correctamente al pago No." + noPay + ".", UserControl.ucMessage.MessageType.Information);
                            // Async
                            Log_Transaction.registerUserInfo(_user, "UPDATE PAYMENT NO.:" + noPay + " STATUS:" + newStatus);
                        }
                        refreshGridView();
                    }
                    else
                    {
                        msnMessage.LoadMessage("El usuario no tiene permiso para validar el pago : " + noPay, UserControl.ucMessage.MessageType.Error);
                    }
                }
            }
        }
コード例 #3
0
        public static string ajaxUpgradePromoter(decimal promoter, string typeCoord, string area, string mail)
        {
            ///
            /// Deido a que la funcion es estatica se deben crear referencias para podre hacer llamados a algunos metodos
            System.Web.SessionState.HttpSessionState sessions = HttpContext.Current.Session;

            // Cargar session
            Users us = (Users)sessions[Constants.NameSessionUser];

            try
            {
                Log_Transaction.insertLogTransaction(us._usv_co, us._usn_userid, DateTime.Now,
                                                     us._usv_username + "Upgrade Promoter id:" + promoter + " Type Coord:" + typeCoord + " Area:" + area, us._logTx._ip);
            }
            catch (Exception e)
            {
                throw new Exception(e.Message, e.InnerException);
            }

            return("1");
        }
コード例 #4
0
        public static string ajaxUpdatePromoter(Decimal promoter, Decimal newCoord)
        {
            ///
            /// Deido a que la funcion es estatica se deben crear referencias para podre hacer llamados a algunos metodos
            System.Web.SessionState.HttpSessionState sessions = HttpContext.Current.Session;

            // Cargar session de compañia
            Users us = (Users)sessions[Constants.NameSessionUser];

            try
            {
                // Async
                Log_Transaction.registerUserInfo(us,
                                                 us._usv_username + "Change Stencil Promoter id:" + promoter + " New Coord:" + newCoord);
            }
            catch (Exception e)
            {
                throw new Exception(e.Message, e.InnerException);
            }

            return("1");
        }
コード例 #5
0
        protected void btCreateClear_Click(object sender, EventArgs e)
        {
            msnMessage.HideMessage();
            string co      = _user._usv_co;
            string listLiq = string.Empty;
            string listDoc = string.Empty;
            string clear   = string.Empty;

            _lstDocTx = getListFromSes();

            List <Documents_Trans> lstDocTxCheck = _lstDocTx.Where(x => x._check).ToList();

            if (lstDocTxCheck.Count == 0)
            {
                msnMessage.LoadMessage("no ha seleccionado ningun items", UserControl.ucMessage.MessageType.Error);
                return;
            }

            DataTable dt_cruce = new DataTable();

            dt_cruce.Columns.Add("Tip", typeof(string));
            dt_cruce.Columns.Add("Monto", typeof(Double));
            Int32     fvalidapedido = 0;
            DataTable dtpagos       = new DataTable();

            dtpagos.Columns.Add("Doc_Tra_Id", typeof(string));
            foreach (Documents_Trans dTx in lstDocTxCheck)
            {
                if (dTx._conceptid.Equals("PAGOS"))
                {
                    dt_cruce.Rows.Add('P', dTx._value);
                    if (!string.IsNullOrEmpty(listDoc))
                    {
                        listDoc += ",";
                    }
                    listDoc += dTx._docNo;
                    dtpagos.Rows.Add(dTx._docNo);
                }
                if (dTx._conceptid.Equals("FACTURACION"))
                {
                    dt_cruce.Rows.Add('L', dTx._value * -1);
                    fvalidapedido += 1;
                    //if (fvalidapedido > 1)
                    //{
                    //    msnMessage.LoadMessage("No se puede realizar cruce de pagos con 2 o más Pedidos" +
                    //       " ,por favor seleccione solo 1 pedido.", UserControl.ucMessage.MessageType.Error);
                    //    return;
                    //}

                    if (!string.IsNullOrEmpty(listLiq))
                    {
                        listLiq += ",";
                    }
                    listLiq += dTx._docNo;

                    dtpagos.Rows.Add(dTx._docNo);
                }
            }

            if (listLiq.Length == 0)
            {
                msnMessage.LoadMessage("no ha seleccionado ninguna factura para cruzar el pago", UserControl.ucMessage.MessageType.Error);
                return;
            }

            //validar para que solo haya un limite de pago y no seleccione varios pagos cuando en un solo op ya pago todo el pedido
            DataRow[] fila_L    = dt_cruce.Select("Tip='L'");
            Decimal   monto_liq = Convert.ToDecimal(fila_L[0][1].ToString());

            DataRow[] fila_P  = dt_cruce.Select("Tip='P'");
            Decimal   _pagos  = 0;
            Int32     _limite = 0;
            Int32     _cur    = 0;

            //for (Int32 i = 0; fila_P.Length > i; ++i)
            //{
            //    _cur += 1;
            //    //si ya existe pagos seleccionados
            //    if (_cur > 1)
            //    {
            //        decimal _pago_cancelado = Convert.ToDecimal(fila_P[i][1].ToString());
            //        if (_pago_cancelado > monto_liq)
            //        {
            //            msnMessage.LoadMessage("por favor solo seleccione el pago necesario para pagar su factura", UserControl.ucMessage.MessageType.Error);
            //            return;
            //        }
            //    }
            //_pagos += Convert.ToDecimal(fila_P[i][1].ToString());
            //if (_pagos > monto_liq)
            //{
            //    if (_limite == 0)
            //    {
            //        _limite = 1;
            //    }
            //    else
            //    {
            //        msnMessage.LoadMessage("por favor solo seleccione el pago necesario para pagar su factura", UserControl.ucMessage.MessageType.Error);
            //        return;
            //    }
            //}
            //}



            //*************************************

            // Cruce financiero de pagos y liquidaciones
            if (!string.IsNullOrEmpty(listLiq) && !string.IsNullOrEmpty(listDoc))
            {
                //
                try
                {
                    string vrefnc  = "";
                    string vreffec = "";



                    clear = Clear.setPreClear(_user._bas_id, dtpagos);

                    // en este caso vamos hacer un update a la nota de credito de financiera de document_trans
                    //Clear.sbupdateclearncredito(listLiq, clear);

                    //
                    if (!string.IsNullOrEmpty(clear))
                    {
                        msnMessage.LoadMessage("El cruce de información fue grabado correctamente; número del cruce: " + clear, UserControl.ucMessage.MessageType.Information);
                    }
                    else
                    {
                        throw new InvalidCastException();
                    }

                    refreshGrid();
                }
                catch (InvalidCastException ic)
                {
                    msnMessage.LoadMessage("Error ocurrido realizando el cruce financiero; por favor intente de nuevo; detalle: " + ic.Message, UserControl.ucMessage.MessageType.Error);
                }
                catch (Exception ex)
                {
                    msnMessage.LoadMessage("Error ocurrido realizando el cruce financiero; por favor intente de nuevo; detalle: " + ex.Message, UserControl.ucMessage.MessageType.Error);
                }
            }
            // Cruce financiero de documentos
            else if (!string.IsNullOrEmpty(listDoc))
            {
                clear = Clear.setClearingDoc(co, listDoc);
                try
                {
                    if (!string.IsNullOrEmpty(clear))
                    {
                        msnMessage.LoadMessage("El cruce de información fue grabado correctamente; número del cruce: " + clear, UserControl.ucMessage.MessageType.Information);
                        // Async
                        Log_Transaction.registerUserInfo(_user, "CREATE CLEAR:" + clear);
                    }
                    else
                    {
                        throw new InvalidCastException();
                    }
                    refreshGrid();
                }
                catch (InvalidCastException ic)
                {
                    msnMessage.LoadMessage("Error ocurrido realizando el cruce financiero; por favor intente de nuevo; detalle: " + ic.Message, UserControl.ucMessage.MessageType.Error);
                }
                catch (Exception ex)
                {
                    msnMessage.LoadMessage("Error ocurrido realizando el cruce financiero; por favor intente de nuevo; detalle: " + ex.Message, UserControl.ucMessage.MessageType.Error);
                }
            }
            else
            {
                msnMessage.LoadMessage("Por favor, debe seleccionar los documentos que formaran el cruce financiero.", UserControl.ucMessage.MessageType.Error);
            }
        }
コード例 #6
0
        protected void btCreateLiq_Click(object sender, EventArgs e)
        {
            //hpedido.Value = "120";

            msnMessage.HideMessage();
            string co      = _user._usv_co;
            string listLiq = string.Empty;
            string listDoc = string.Empty;
            string clear   = string.Empty;

            _lstDocTx = getListFromSes();

            List <Documents_Trans> lstDocTxCheck = _lstDocTx.Where(x => x._check).ToList();

            if (lstDocTxCheck.Count == 0)
            {
                msnMessage.LoadMessage("no hay pedidos para generar su liquidacion", UserControl.ucMessage.MessageType.Error);
                string script = string.Empty;
                script += "closeDialogLoad()";
                System.Web.UI.ScriptManager.RegisterStartupScript(upPanelMsg, Page.GetType(), "CloseDialog", script, true);
                return;
            }



            DataTable dt_pedido = new DataTable();

            dt_pedido.Columns.Add("pedido", typeof(string));
            //dt_cruce.Columns.Add("Monto", typeof(Double));
            Int32 fvalidapedido = 0;

            //DataTable dtpagos = new DataTable();
            //dtpagos.Columns.Add("Doc_Tra_Id", typeof(string));
            foreach (Documents_Trans dTx in lstDocTxCheck)
            {
                if (dTx._conceptid.Equals("PAGOS"))
                {
                    //dt_cruce.Rows.Add('P', dTx._value);
                    //if (!string.IsNullOrEmpty(listDoc)) listDoc += ",";
                    //listDoc += dTx._docNo;
                    //dtpagos.Rows.Add(dTx._docNo);
                }
                if (dTx._conceptid.Equals("LIQUIDACIONES"))
                {
                    //dt_cruce.Rows.Add('L', dTx._value * -1);
                    dt_pedido.Rows.Add(dTx._docNo);
                    fvalidapedido += 1;
                    if (!string.IsNullOrEmpty(listLiq))
                    {
                        listLiq += ",";
                    }
                    listLiq += dTx._docNo;
                }
            }

            decimal _saldo = Convert.ToDecimal(Session["_saldo"].ToString());

            if (_saldo < 0)
            {
                _saldo = _saldo * -1;
                msnMessage.LoadMessage("no se puede agrupar porque queda un saldo de " + _saldo.ToString(ConfigurationManager.AppSettings["kCurrency"]) + " por pagar", UserControl.ucMessage.MessageType.Error);
                string script = string.Empty;
                script += "closeDialogLoad()";
                System.Web.UI.ScriptManager.RegisterStartupScript(upPanelMsg, Page.GetType(), "CloseDialog", script, true);
                return;
            }

            //*************************************

            // Cruce financiero de pagos y liquidaciones
            if (!string.IsNullOrEmpty(listLiq))
            {
                //
                try
                {
                    string _lider_codigo = (pnlDwCustomers.Visible) ? dwCustomers.SelectedValue : _user._usn_userid.ToString();


                    string _validaref = string.Empty;
                    string _liq_ref   = "";
                    clear = Clear._ejecutar_agrupar_pedido(Convert.ToDecimal(_lider_codigo), _user._bas_id, dt_pedido, ref _liq_ref);

                    // en este caso vamos hacer un update a la nota de credito de financiera de document_trans
                    //Clear.sbupdateclearncredito(listLiq, clear);

                    //


                    if (clear.Length == 0)
                    {
                        Session["_saldo"] = "0";
                        string script = string.Empty;
                        script += "closeDialogLoad()";
                        System.Web.UI.ScriptManager.RegisterStartupScript(upPanelMsg, Page.GetType(), "CloseDialog", script, true);
                        msnMessage.LoadMessage("El agrupamiento genero un numero de liquidacion para el lider , se genera el pago numero: " + clear, UserControl.ucMessage.MessageType.Information);
                        string url = _pageLiquidReport + "?noLiq=" + _liq_ref;//"?NoOrder=" + noOrder + "&TypeReport=2";
                        //
                        Response.Redirect(url);

                        //procedimiento envio de correo  al usuario admin

                        //DataTable dt = Clear.fgetcorreoenvio();

                        //if (dt.Rows.Count > 0)
                        //{
                        //    for (Int32 i = 0; i <= dt.Rows.Count - 1; i++)
                        //    {
                        //        sbenviarcorreo(dt.Rows[i]["email"].ToString());
                        //    }
                        //}
                        ////////////////////////////////////
                        // Async
                        //Log_Transaction.registerUserInfo(_user, "CREATE CLEAR:" + clear);
                    }
                    else
                    {
                        throw new InvalidCastException();
                    }

                    refreshGrid();
                }
                catch (InvalidCastException ic)
                {
                    msnMessage.LoadMessage("Error ocurrido realizando el cruce financiero; por favor intente de nuevo; detalle: " + ic.Message, UserControl.ucMessage.MessageType.Error);
                    string script = string.Empty;
                    script += "closeDialogLoad()";
                    System.Web.UI.ScriptManager.RegisterStartupScript(upPanelMsg, Page.GetType(), "CloseDialog", script, true);
                }
                catch (Exception ex)
                {
                    msnMessage.LoadMessage("Error ocurrido realizando el cruce financiero; por favor intente de nuevo; detalle: " + ex.Message, UserControl.ucMessage.MessageType.Error);
                    string script = string.Empty;
                    script += "closeDialogLoad()";
                    System.Web.UI.ScriptManager.RegisterStartupScript(upPanelMsg, Page.GetType(), "CloseDialog", script, true);
                }
            }
            // Cruce financiero de documentos
            else if (!string.IsNullOrEmpty(listDoc))
            {
                clear = Clear.setClearingDoc(co, listDoc);
                try
                {
                    if (!string.IsNullOrEmpty(clear))
                    {
                        msnMessage.LoadMessage("El cruce de información fue grabado correctamente; número del cruce: " + clear, UserControl.ucMessage.MessageType.Information);
                        // Async
                        Log_Transaction.registerUserInfo(_user, "CREATE CLEAR:" + clear);
                    }
                    else
                    {
                        throw new InvalidCastException();
                    }
                    refreshGrid();
                }
                catch (InvalidCastException ic)
                {
                    msnMessage.LoadMessage("Error ocurrido realizando el cruce financiero; por favor intente de nuevo; detalle: " + ic.Message, UserControl.ucMessage.MessageType.Error);
                }
                catch (Exception ex)
                {
                    msnMessage.LoadMessage("Error ocurrido realizando el cruce financiero; por favor intente de nuevo; detalle: " + ex.Message, UserControl.ucMessage.MessageType.Error);
                }
            }
            else
            {
                msnMessage.LoadMessage("Por favor, debe seleccionar los documentos que formaran el cruce financiero.", UserControl.ucMessage.MessageType.Error);
            }
        }
コード例 #7
0
        protected void btCreateClear_Click(object sender, EventArgs e)
        {
            msnMessage.HideMessage();
            string co      = _user._usv_co;
            string listLiq = string.Empty;
            string listDoc = string.Empty;
            string clear   = string.Empty;

            _lstDocTx = getListFromSes();

            List <Documents_Trans> lstDocTxCheck = _lstDocTx.Where(x => x._check).ToList();

            if (lstDocTxCheck.Count == 0)
            {
                msnMessage.LoadMessage("no ha seleccionado ningun items", UserControl.ucMessage.MessageType.Error);
                return;
            }

            DataTable dt_cruce = new DataTable();

            dt_cruce.Columns.Add("Tip", typeof(string));
            dt_cruce.Columns.Add("Monto", typeof(Double));
            Int32     fvalidapedido = 0;
            DataTable dtpagos       = new DataTable();

            dtpagos.Columns.Add("Doc_Tra_Id", typeof(string));
            foreach (Documents_Trans dTx in lstDocTxCheck)
            {
                if (dTx._conceptid.Equals("PAGOS"))
                {
                    dt_cruce.Rows.Add('P', dTx._value);
                    if (!string.IsNullOrEmpty(listDoc))
                    {
                        listDoc += ",";
                    }
                    listDoc += dTx._docNo;
                    dtpagos.Rows.Add(dTx._docNo);
                }
                if (dTx._conceptid.Equals("LIQUIDACIONES"))
                {
                    dt_cruce.Rows.Add('L', dTx._value * -1);
                    fvalidapedido += 1;
                    if (fvalidapedido > 1)
                    {
                        msnMessage.LoadMessage("No se puede realizar cruce de pagos con 2 o más Pedidos" +
                                               " ,por favor seleccione solo 1 pedido.", UserControl.ucMessage.MessageType.Error);
                        return;
                    }

                    if (!string.IsNullOrEmpty(listLiq))
                    {
                        listLiq += ",";
                    }
                    listLiq += dTx._docNo;
                }
            }

            if (listLiq.Length == 0)
            {
                msnMessage.LoadMessage("no ha seleccionado ningun pedido para cruzar el pago", UserControl.ucMessage.MessageType.Error);
                return;
            }

            //validar para que solo haya un limite de pago y no seleccione varios pagos cuando en un solo op ya pago todo el pedido
            DataRow[] fila_L    = dt_cruce.Select("Tip='L'");
            Decimal   monto_liq = Convert.ToDecimal(fila_L[0][1].ToString());

            DataRow[] fila_P  = dt_cruce.Select("Tip='P'");
            Decimal   _pagos  = 0;
            Int32     _limite = 0;

            for (Int32 i = 0; fila_P.Length > i; ++i)
            {
                _pagos += Convert.ToDecimal(fila_P[i][1].ToString());
                if (_pagos > monto_liq)
                {
                    if (_limite == 0)
                    {
                        _limite = 1;
                    }
                    else
                    {
                        msnMessage.LoadMessage("por favor solo seleccione el pago necesario para pagar su pedido", UserControl.ucMessage.MessageType.Error);
                        return;
                    }
                }
            }



            //*************************************

            // Cruce financiero de pagos y liquidaciones
            if (!string.IsNullOrEmpty(listLiq) && !string.IsNullOrEmpty(listDoc))
            {
                //
                try
                {
                    string vrefnc     = "";
                    string vreffec    = "";
                    string _validaref = string.Empty;

                    _validaref = Clear.setvalidaclear(listLiq, ref vrefnc, ref vreffec);
                    if (!(string.IsNullOrEmpty(_validaref)))
                    {
                        msnMessage.LoadMessage("No se puede realizar cruce de pagos; porque la fecha de referencia de la nota de credito N " + vrefnc +
                                               " pertenece a otro mes con fecha " + vreffec + "  ,por favor anule este pedido y vuelva a generar otro pedido", UserControl.ucMessage.MessageType.Error);
                        return;
                    }


                    clear = Clear.setPreCrucePago(listLiq, dtpagos);

                    // en este caso vamos hacer un update a la nota de credito de financiera de document_trans
                    //Clear.sbupdateclearncredito(listLiq, clear);

                    //
                    string _lider = "";
                    if (!(pnlDwCustomers.Visible))
                    {
                        _lider = _user._nombre;
                    }
                    else
                    {
                        _lider = dwCustomers.SelectedItem.Text;
                    }


                    if (!string.IsNullOrEmpty(clear))
                    {
                        msnMessage.LoadMessage("El cruce de información fue grabado correctamente, su pedido sera enviado para la agrupacion del lider: " + _lider, UserControl.ucMessage.MessageType.Information);

                        //procedimiento envio de correo  al usuario admin

                        //DataTable dt = Clear.fgetcorreoenvio();

                        //if (dt.Rows.Count > 0)
                        //{
                        //    for (Int32 i = 0; i <= dt.Rows.Count - 1; i++)
                        //    {
                        //        sbenviarcorreo(dt.Rows[i]["email"].ToString());
                        //    }
                        //}
                        ////////////////////////////////////
                        // Async
                        Log_Transaction.registerUserInfo(_user, "CREATE CLEAR:" + clear);
                    }
                    else
                    {
                        throw new InvalidCastException();
                    }

                    refreshGrid();
                }
                catch (InvalidCastException ic)
                {
                    msnMessage.LoadMessage("Error ocurrido realizando el cruce financiero; por favor intente de nuevo; detalle: " + ic.Message, UserControl.ucMessage.MessageType.Error);
                }
                catch (Exception ex)
                {
                    msnMessage.LoadMessage("Error ocurrido realizando el cruce financiero; por favor intente de nuevo; detalle: " + ex.Message, UserControl.ucMessage.MessageType.Error);
                }
            }
            // Cruce financiero de documentos
            else if (!string.IsNullOrEmpty(listDoc))
            {
                clear = Clear.setClearingDoc(co, listDoc);
                try
                {
                    if (!string.IsNullOrEmpty(clear))
                    {
                        msnMessage.LoadMessage("El cruce de información fue grabado correctamente; número del cruce: " + clear, UserControl.ucMessage.MessageType.Information);
                        // Async
                        Log_Transaction.registerUserInfo(_user, "CREATE CLEAR:" + clear);
                    }
                    else
                    {
                        throw new InvalidCastException();
                    }
                    refreshGrid();
                }
                catch (InvalidCastException ic)
                {
                    msnMessage.LoadMessage("Error ocurrido realizando el cruce financiero; por favor intente de nuevo; detalle: " + ic.Message, UserControl.ucMessage.MessageType.Error);
                }
                catch (Exception ex)
                {
                    msnMessage.LoadMessage("Error ocurrido realizando el cruce financiero; por favor intente de nuevo; detalle: " + ex.Message, UserControl.ucMessage.MessageType.Error);
                }
            }
            else
            {
                msnMessage.LoadMessage("Por favor, debe seleccionar los documentos que formaran el cruce financiero.", UserControl.ucMessage.MessageType.Error);
            }
        }
コード例 #8
0
        protected void LoginUser_Authenticate(object sender, System.Web.UI.WebControls.AuthenticateEventArgs e)
        {
            try
            {
                //obtine el nombre del usuario que desea autenticarse
                string name = LoginUser.UserName;
                //Obtine el password
                string password = LoginUser.Password;
                //obtiene si el usuario desea o no almacenar una cookie
                bool  checkcookie = LoginUser.RememberMeSet;
                Users user        = new Users();
                user = loadUser(name);

                if (user != null)
                {
                    bool ValIngreso = true;

                    if (user._usv_flg_Expired == "A")
                    {
                        if (user._usv_status == Constants.IdStatusPasswordExpiration)
                        {
                            ValIngreso = false;
                        }
                    }


                    if (user._usu_est_id.Equals(Constants.IdStatusActive) && ValIngreso)
                    {
                        //Desencripta la contraseña del usuario
                        string passUser = Cryptographic.decrypt(user._usu_contraseña);
                        //valida la contraseña contraseña que ingreso contra lad del usuario
                        if (password.Equals(passUser))
                        {
                            //userSign(ref user, name, password, Request.UserHostAddress);

                            Session[Constants.NameSessionUser] = user;
                            loadMenu(user._bas_id);


                            //String ip = GetUserIPAddress(); // o se puede utiliar lo siguiente que es lo mismo
                            string _host = ""; string _ip = "";
                            GetIpAddress(ref _host, ref _ip);

                            //insertar log de acceso al sistema
                            Log_Transaction._auditoria_acceso(user._bas_id, user._nombre, _ip, _host);

                            //Autenticación
                            try
                            {
                                FormsAuthentication.RedirectFromLoginPage(user._bas_id.ToString(), checkcookie);
                            }
                            catch (Exception ex) { LoginUser.FailureText = "Error de conexión: " + ex.Message.ToString(); }
                        }
                        else
                        {
                            InvalidCredentialsLog.insertInvalidCredentialsLog(user._usv_co, name, password, "F", "F", Request.UserHostAddress);
                            System.Diagnostics.Trace.WriteLine("[ValidateUser] Usuario y/o contraseña invalidos.");
                        }
                    }
                    else if (user._usv_status.Equals(Constants.IdStatusPasswordExpiration) && user._usv_flg_Expired == "A")
                    {
                        //Desencripta la contraseña del usuario
                        string passUser = Cryptographic.decrypt(user._usu_contraseña);
                        //valida la contraseña contraseña que ingreso contra lad del usuario
                        if (password.Equals(passUser))
                        {
                            userSign(ref user, name, password, Request.UserHostAddress);

                            loadMenu(user._bas_id);
                            FormsAuthentication.SetAuthCookie(user._usn_userid.ToString(), checkcookie);
                            Server.Transfer("changePassword.aspx?expiration=1");
                        }
                        else
                        {
                            InvalidCredentialsLog.insertInvalidCredentialsLog(user._usv_co, name, password, "F", "F", Request.UserHostAddress);
                            System.Diagnostics.Trace.WriteLine("[ValidateUser] Usuario y/o contraseña invalidos.");
                        }
                    }
                    else
                    {
                        LoginUser.FailureText = "Error de conexión: El usuario no esta Activo";
                    }
                }
                else
                {
                    System.Diagnostics.Trace.WriteLine("[ValidateUser] La validacion del usuario fallo.");
                }
            }
            catch (Exception ex)
            {
            }
        }
コード例 #9
0
        public static void setUserInfo(string userIp, string userCountry, string userRegion, string userCity, string userName)
        {
            Log_Transaction lTLogin = new Log_Transaction(userIp, userName, userCountry, userRegion, userCity);

            HttpContext.Current.Session[_nSlogTx] = lTLogin;
        }