/// <summary>
        ///
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void btnEnviar_Click(object sender, EventArgs e)
        {
            //RECUPERAR LA CONTRASEÑA DE USUARIO E ENVIARLA AL MAIL INDICADO
            var email           = txtEmail.Text;
            var estado          = false;
            var passwordDefault = "4gY7-k";

            //ARQ.BASE - ACA YA TENEMOS EL USUARIO CON TODOS SUS DATOS
            SIS.ENTIDAD.Usuario oUsuario = new SIS.ENTIDAD.Usuario();
            oUsuario = interfazNegocioUsuario.ObtenerUsuarioPorEmail(email);

            if (oUsuario.IdUsuario != null)
            {
                Session["loginEstado"] = 0;
                Session["usuarioOk"]   = 0;
                //0# - SETEO PASSWORD POR DEFECTO
                oUsuario.Password = passwordDefault;

                //1# - ACTUALIZO EL USUARIO EN LA DB
                interfazNegocioUsuario.ActualizarUsuario(oUsuario);

                //2# ENVIAR POR EMAIL EN UN EMAIL GENERICO
                estado = interfazNegocioUsuario.EnviarRecordatorioPassword(email, passwordDefault);

                Session.Clear();
                FormsAuthentication.SignOut();
                Response.Redirect("login.aspx");
            }
            else
            {
                Session["usuarioOk"] = 1;
            }
        }
Exemple #2
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void btnGuardarRegistro_Click(object sender, EventArgs e)
        {
            SIS.ENTIDAD.Usuario oUsuario = new SIS.ENTIDAD.Usuario();
            List <Grupo>        lstGrupo = new List <Grupo>();

            SIS.ENTIDAD.Grupo oGrupo = new SIS.ENTIDAD.Grupo();

            if (txtNombre.Text != "" && txtFechaNacimiento.Text != "" && txtContraseña.Text != "" && txtEmail.Text != "")
            {
                Session["registroEstado"] = 0;
                oUsuario.NombreApellido   = txtNombre.Text;
                oUsuario.FechaNacimiento  = txtFechaNacimiento.Text;
                oUsuario.CategoriaMoto    = CategoriaMotoList.SelectedValue.ToString();
                oUsuario.usuario          = txtEmail.Text.ToString().Substring(0, txtEmail.Text.ToString().IndexOf("@"));
                oUsuario.Password         = txtContraseña.Text;
                oUsuario.Email            = txtEmail.Text;
                //ESTA INACTIVO HASTA QUE PAGUE LA MEMBRESIA
                oUsuario.Estado = "Inactivo";

                //ARQ.BASE MULTI-USUARIO | OBTENER ULTIMO ID y GRUPOS ASOCIADOS
                oUsuario.IdUsuario = interfazNegocioUsuario.ObtenerIdParaUsuario().ToString();
                oGrupo             = interfazNegocioUsuario.ObtenerGrupoPorId(2);
                lstGrupo.Add(oGrupo);
                oUsuario.ListadoGrupos = lstGrupo;

                //ARQ.BASE MULTI-USUARIO | INSERTO USUARIO - RE-CALCULANDO LOS DIGITOS VERIFICADORES
                interfazNegocioUsuario.InsertarUsuario(oUsuario);

                //GUARDO USUARIO QUE ESTA OPERANDO EN SESSION
                Session["UsuarioId"] = oUsuario.IdUsuario;
                Session["Usuario"]   = oUsuario.usuario;

                Response.Redirect("membresias.aspx");
            }
            else
            {
                Session["registroEstado"] = 1;
            }
        }
Exemple #3
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void btnLogin_Click(object sender, EventArgs e)
        {
            var  resultadoLogin = 0;
            bool existeUsuario  = false;

            SIS.ENTIDAD.Usuario user = new SIS.ENTIDAD.Usuario();

            user.usuario  = txtUsuario.Text;
            user.Password = txtContrasenia.Text;

            if (txtUsuario.Text != null && txtContrasenia.Text != null)
            {
                //ARQ.BASE - VALIDO SI EXISTE USUARIO | REITENTOS
                existeUsuario = interfazNegocioUsuario.ValidarUsuario(user.usuario.ToString());
                //ARQ.BASE - OBTENGO ID DEL USER SI EXISTE
                resultadoLogin = interfazNegocioUsuario.Login(user.usuario, user.Password);
            }

            //EVALUO EL RESULTDO DEL LOGIN | SI ES 0 Y NO EXISTE USUARIO -> CREAR USUARIO
            if (resultadoLogin != 0 && existeUsuario == true)
            {
                SingletonConeccion coneccion = SingletonConeccion.Instance;

                //BUSCO EL USUARIO POR SU ID
                var usuario = interfazNegocioUsuario.ObtenerUsuario(resultadoLogin);
                if (usuario.Estado == "Activo")
                {
                    //GUARDO EL USUARIO CONECTADO EN SESSION
                    Session["Usuario"]           = usuario.usuario;
                    Session["UsuarioId"]         = usuario.IdUsuario;
                    Session["UsuarioLoginFecha"] = DateTime.Now;
                    Session["UsuarioHost"]       = Request.UserHostAddress;
                    Session["UsuarioAgent"]      = Request.Browser.Browser + "-" + Request.Browser.Version;
                    //NOS ASEGURAMOS QUE SOLO SE USARA UNA CONECCION PARA CADA USUARIO
                    Session["UsuarioInstaciaConeccion"] = coneccion;
                    Session["UsuarioEstado"]            = usuario.Estado;

                    //ME GUARDO LOS GRUPOS PARA EL USUARIO LOGEADO
                    List <SIS.ENTIDAD.Grupo> lstGrupos = usuario.ListadoGrupos;
                    //NIVEL DE ACCESO DEL USUARIO LOGEADO
                    var nVisibilidad = "";

                    foreach (SIS.ENTIDAD.Grupo g in lstGrupos)
                    {
                        //TOMO LA VISIBILIDAD ASIGNADA A DICHO USUARIO
                        nVisibilidad = g.grupo;
                    }

                    // CREO UN TICKET DE AUTENTIFICACION Y LO ENCRYPTO: ARQ.BASE.WEBSEGURITY
                    FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(
                        1,                                    // Ticket version
                        user.usuario,                         // Username associated with ticket
                        DateTime.Now,                         // Date/time issued
                        DateTime.Now.AddMinutes(30),          // Date/time to expire
                        true,                                 // "true" for a persistent user cookie
                        nVisibilidad,                         // User-data, in this case the roles
                        FormsAuthentication.FormsCookiePath); // Path cookie valid for

                    // Encrypt the cookie using the machine key for secure transport
                    string     hash        = FormsAuthentication.Encrypt(ticket);
                    HttpCookie loginCookie = new HttpCookie(
                        FormsAuthentication.FormsCookieName, // Name of auth cookie
                        hash);                               // Hashed ticket

                    // Set the cookie's expiration time to the tickets expiration time
                    if (ticket.IsPersistent)
                    {
                        loginCookie.Expires = ticket.Expiration;
                    }

                    // Add the cookie to the list for outgoing response
                    Response.Cookies.Add(loginCookie);


                    if (nVisibilidad == "Admin")
                    {
                        //SI USUARIO ADMIN -> PANTALLA ADMIN
                        Session["loginEstado"]  = 0;
                        Session["loginUsuario"] = user.usuario;
                        Response.Redirect("webmaster.aspx");
                    }
                    else
                    {
                        //SI USUARIO ES JERARQUICO O USUARIO -> PANTALLA HOME
                        Session["loginEstado"]  = 0;
                        Session["loginUsuario"] = user.usuario;
                        Response.Redirect("eventos.aspx");
                    }
                }
                else
                {
                    //ARQ.BASE - ESTADO INACTIVO PERO USUARIO EXISTENTE | A: INACTIVO POR FALTA DE PAGO O B:INACTIVO POR REITENTO
                    int cantidadReitento = interfazNegocioUsuario.ConsultarReIntento(usuario.IdUsuario);

                    if (cantidadReitento == 3)
                    {
                        //ARQ.BASE - CASO B: USUARIO INACTIVO POR BLOQUEADO MAX RE-INTENTOS
                        crearTicketUsuarioNoRegistrado();
                        Session["UsuarioEstado"] = usuario.Estado;
                        Session["UsuarioId"]     = usuario.IdUsuario;
                        Response.Redirect("blockUsuario.aspx");
                    }
                    else
                    {
                        //ARQ.BASE - CASO A: USUARIO INACTIVO FALTA DE PAGO
                        crearTicketUsuarioNoRegistrado();
                        Session["UsuarioEstado"] = usuario.Estado;
                        Session["UsuarioId"]     = usuario.IdUsuario;
                        Response.Redirect("avisoPago.aspx");
                    }
                }
            }
            else if (resultadoLogin == 0 && existeUsuario == true)
            {
                Usuario oUsuario = new Usuario();
                //ARQ.BASE - BUSCO EL USUARIO POR NOMBRE DE USUARIO Y COBRO REITENTO
                oUsuario = interfazNegocioUsuario.ObtenerUsuarioPorNombreUsuario(txtUsuario.Text);

                //ARQ.BASE - VERIFICO SI TIENE MENOS DE 3 INTENTOS | SINO ESTA BLOQUEADO POR RE-INTENTOS
                int cantidadReitento = interfazNegocioUsuario.ConsultarReIntento(oUsuario.IdUsuario);

                if (cantidadReitento < 2)
                {
                    //ARQ.BASE - BUSCAR SI TIENE INSERTADO REGISTRO EN REITENTOS
                    interfazNegocioUsuario.ContarReIntento(oUsuario.IdUsuario, cantidadReitento);
                }
                else if (cantidadReitento == 2)
                {
                    //ARQ.BASE - TERCER REITENTO
                    interfazNegocioUsuario.ContarReIntento(oUsuario.IdUsuario, cantidadReitento);
                    //ARQ.BASE - INACTIVAR USUARIO
                    oUsuario.Estado = "Inactivo";
                    interfazNegocioUsuario.ActualizarUsuarioEstado(oUsuario);
                }
                else
                {
                    //ARQ.BASE - USUARIO BLOQUEADO MAX RE-INTENTOS
                    crearTicketUsuarioNoRegistrado();
                    Response.Redirect("blockUsuario.aspx");
                }
            }
            //MOSTRAR PANTALLA LOGIN | AVISAR USER INVALIDO
            Session["loginEstado"] = 1;
        }