Esempio n. 1
0
            /// <summary>
            /// Validacion de sesiones del usuario
            /// </summary>
            /// <param name="Login">Login de usuario</param>
            /// <param name="Sesiones">Lista de sesiones de usuarios</param>
            /// <param name="Mensaje">Mensaje resultante del proceso de validacion</param>
            /// <returns>true si el login esta permitido, false en caso contrario</returns>
            /// <history>
            /// [LucianoP]          [jueves, 13 de julio de 2017]    Creado
            /// </history>
            public static bool Verificar(string Login, List <mSession> Sesiones, out string Mensaje)
            {
                Mensaje = "";

                cFormLogin objFormLogin         = new cFormLogin();
                bool       priorityToFirstLogin = Convert.ToBoolean(ConfigurationManager.AppSettings["PriorityToFirstLogin"]);

                var session = Sesiones.FirstOrDefault(ses => ses.User == Login);

                if (session != null)
                {
                    if (priorityToFirstLogin)
                    {
                        Mensaje = objFormLogin.AuditarIntentoInicioSesionConSesionActiva(Login);
                        return(false);
                    }
                    else
                    {
                        Sesiones.Remove(session);
                        return(true);
                    }
                }

                return(true);
            }
Esempio n. 2
0
        /// <summary>
        /// Evento Load.
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void Page_Load(object sender, EventArgs e)
        {
            cFormLogin objUILogin = new cFormLogin();

            if (!IsPostBack)
            {
                try
                {
                    //Recupera el Tipo de Seguridad y nombre de Dominio para Mostrar.
                    HttpContext.Current.Session["objCipol"] = new EntidadesEmpresariales.PadreCipolCliente();
                    this.lblNombreDominio.Text = objUILogin.RecuperarTipoSeguridadYNombreDeDominio(new System.Net.CookieContainer());

                    // [IvanSa] Se registra la funcion de Jquery para obtener el ip del cliente.
                    if (System.Configuration.ConfigurationManager.AppSettings["EnviarDireccionIP"] == "S" &&
                        System.Configuration.ConfigurationManager.AppSettings["ServicioPublicoIP"] == "S")
                    {
                        string script = string.Format("ObtenerIP();");
                        if (!ClientScript.IsClientScriptBlockRegistered("myScript"))
                        {
                            ClientScript.RegisterClientScriptBlock(typeof(frmLogin), "myScript", script, true);
                        }
                    }
                }
                catch (Exception)
                {
                    //TODO MOSTRAR ERROR
                    throw;
                }
            }
        }
        /// <history>
        /// [MartinV]          [martes, 05 de noviembre de 2013]       Modificado  GCP-Cambios 14460
        /// [MartinV]          [miércoles, 24 de septiembre de 2014]       Modificado  GCP-Cambios 15584
        /// </history>
        protected override void Evento_load(object sender, EventArgs e)
        {
            cFormLogin objUILogin = new cFormLogin();

            if (!this.IsPostBack)
            {
                //this.lblNombreDominio.Text = objUILogin.RecuperarTipoSeguridadYNombreDeDominio(ManejoSesion.CookieMaster);
                this.lblUsuario.Text = ManejoSesion.DatosCIPOLSesion.DatosPadreCIPOLCliente.Login;
                //Controla si debe preguntar por el cambio de contraseña.
                if (Request.QueryString["preguntar"] != null)
                {
                    ScriptManager.RegisterStartupScript(this, GetType(), "", "page.PreguntarCambioContrasenia('" + Request.QueryString["preguntar"].ToString() + "','" + Request.QueryString["urlPost"].ToString() + "');", true);
                }
            }
        }
        protected void ChangePasswordPushButton_Click(object sender, EventArgs e)
        {
            string     strMensaje   = "";
            cFormLogin objFormLogin = new cFormLogin();

            //ivansa
            if (!objFormLogin.AutenticarUsuario(ref strMensaje, ManejoSesion.DatosCIPOLSesion.DatosPadreCIPOLCliente.Login, CurrentPassword.Text.Trim(), ManejoSesion.CookieMaster, ""))
            {
                //Falló autenticación.
                FailureText.Text = strMensaje;
            }
            else
            {
                strMensaje = AdministrarContrasenia();
                if (!string.IsNullOrEmpty(strMensaje))
                {
                    FailureText.Text = strMensaje;
                }
                else
                {
                    ChangedPassword();
                }
            }
        }
Esempio n. 5
0
        protected void Page_Load(object sender, EventArgs e)
        {
            string strCipol = "";

            if (Request["stringcipol"] != null)
            {
                strCipol = Request["stringcipol"].ToString();
            }

            if (!string.IsNullOrEmpty(strCipol))
            {
                EntidadesEmpresariales.PadreCipolCliente objUsuarioCipol;
                //Dim objFlujo As System.IO.MemoryStream
                System.IO.MemoryStream objFlu;
                //Dim objDeserializador As New System.Runtime.Serialization.Formatters.Binary.BinaryFormatter()
                System.Runtime.Serialization.Formatters.Binary.BinaryFormatter objDeser = new System.Runtime.Serialization.Formatters.Binary.BinaryFormatter();
                //Dim objSerializar As New System.Runtime.Serialization.Formatters.Binary.BinaryFormatter()
                System.Runtime.Serialization.Formatters.Binary.BinaryFormatter objSerializar = new System.Runtime.Serialization.Formatters.Binary.BinaryFormatter();

                //objFlujo = New System.IO.MemoryStream(System.Convert.FromBase64CharArray(pStrCipol.ToCharArray, 0, pStrCipol.Length))
                objFlu = new System.IO.MemoryStream(System.Convert.FromBase64CharArray(strCipol.ToCharArray(), 0, strCipol.Length));

                //gobjUsuarioCipol = CType(objDeserializador.Deserialize(objFlujo), EntidadesEmpresariales.PadreCipolCliente)
                objUsuarioCipol = (EntidadesEmpresariales.PadreCipolCliente)objDeser.Deserialize(objFlu);

                //Proceso de autentificacion.
                ManejoSesion.DatosCIPOLSesion   = new Comun.DatosCIPOL();
                ManejoSesion.DatosSistemaSesion = new Comun.DatosSistema();
                ManejoSesion.DatosCIPOLSesion.DatosPadreCIPOLCliente = objUsuarioCipol;
                ManejoSesion.MensajeCerrar = "El Sistema se ha cerrado con éxito.";

                cFormLogin objUILogin = new cFormLogin();
                string     Mensaje    = "";
                //Carga los parámetros generales del Sistema en Sesión.
                if (!objUILogin.CargarParametros(ref Mensaje))
                {
                    //Si falló al cargar los parámetros generales.
                    mensajesession.Text = Mensaje;
                    return;
                }
                General objGeneral;
                objGeneral = new General(System.Reflection.Assembly.GetExecutingAssembly());
                objGeneral.AcercaDe_Descripcion = "Componente de Seguridad. Desarrollado por COA S.A.";
                objGeneral.AcercaDe_Detalle     = "Configurador Interactivo de Políticas de seguridad de los sistemas. Resuelve las funciones operativas propias de la seguridad de sistemas (implementación de políticas, administración de usuarios,  roles, acceso a subsistemas).";
                objGeneral.AcercaDe_Cliente     = objUsuarioCipol.NombreOrganizacion;
                objGeneral.UsuarioCIPOL         = objUsuarioCipol.Login;

                objGeneral.Hoy = objUsuarioCipol.FechaServidor;
                ManejoSesion.DatosSistemaSesion.DatosGenerales = objGeneral;
                ManejoSesion.DatosSistemaSesion.DatosGenerales.AcercaDe_Cliente = ManejoSesion.DatosCIPOLSesion.DatosPadreCIPOLCliente.NombreOrganizacion;

                Response.Redirect("frmPrincipal.aspx");
            }
            else
            {
                cInicioSesion objIS = new cInicioSesion();
                objIS.RegistrarExpiroSesion();

                mensajesession.Text = "No se detecta sesión iniciada o la misma ha expirado";
            }
        }
Esempio n. 6
0
        /// <summary>
        /// Autenticación de control de usuario de Login.
        /// </summary>
        protected void ucLogin_Authenticate(Object sender, System.Web.UI.WebControls.AuthenticateEventArgs e)
        {
            List <mSession> Sesiones      = Application["Sessions"] as List <mSession>;
            mSession        SesionUsuario = null;

            try
            {
                string strMensaje = "";

                //Validaciones básicas.
                if (!ValidarDatos(ref strMensaje))
                {
                    //Fallaron validaciones básicas.
                    ucLogin.FailureText = strMensaje;

                    e.Authenticated = false;
                    return;
                }

                cFormLogin objFormLogin = new cFormLogin();

                /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
                //Control de login de usuarios
                bool blnValidarSesion = DatosSesion.Control.Verificar(ucLogin.UserName, Sesiones, out strMensaje);

                if (!blnValidarSesion)
                {
                    ucLogin.FailureText = strMensaje;
                    e.Authenticated     = false;
                    return;
                }

                DatosSesion.Control.Guardar(ucLogin.UserName, Sesiones, Session, ref SesionUsuario);
                /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

                //Autentica el usuario.
                string ip = hdnIP.Value.ToString();

                //[GonzaloP]          [miércoles, 22 de febrero de 2017]       Work-Item: 9131
                bool LoginSSO = false;

                //Si el usuario no es "master" entonces se valida si está habilitado el logueo por SSO.
                if (ucLogin.UserName != "master")
                {
                    string strURL_SSO = System.Configuration.ConfigurationManager.AppSettings["ServicioValidacionToken"];

                    if (!String.IsNullOrWhiteSpace(strURL_SSO.Trim()))
                    {
                        LoginSSO = true;
                    }
                }

                //Sólo el usuario "master" puede acceder directamente a CIPOL cuando está habilitado el logueo por SSO.
                if (!LoginSSO)
                {
                    if (!objFormLogin.AutenticarUsuario(ref strMensaje, ucLogin.UserName, ucLogin.Password, new System.Net.CookieContainer(), ip))
                    {
                        //Falló autenticación.
                        ucLogin.FailureText = strMensaje;
                        e.Authenticated     = false;
                        DatosSesion.Control.Eliminar(Sesiones, SesionUsuario);
                        return;
                    }

                    //Validar Dominio
                    if (ManejoSesion.DatosCIPOLSesion.DatosPadreCIPOLCliente.IDUsuario.Equals(0))
                    {
                        if (ManejoSesion.DatosCIPOLSesion.DatosPadreCIPOLCliente.NombreDominio.Equals("X"))
                        {
                            //Abrir Administrar Tipo de Seguridad.
                            Response.Redirect("frmTipoSeguridad.aspx?CambiarDominio=false");
                            e.Authenticated = false;
                            DatosSesion.Control.Eliminar(Sesiones, SesionUsuario);
                            return;
                        }
                    }
                    else
                    {
                        if (ManejoSesion.DatosCIPOLSesion.DatosPadreCIPOLCliente.NombreDominio == null || ManejoSesion.DatosCIPOLSesion.DatosPadreCIPOLCliente.NombreDominio == Constantes.SeguridadNODefinida)
                        {
                            ucLogin.FailureText = "No existe un tipo de seguridad establecido, imposible iniciar la aplicación.";
                            e.Authenticated     = false;
                            DatosSesion.Control.Eliminar(Sesiones, SesionUsuario);
                            return;
                        }
                    }

                    //Redirecciona a la página que obliga a cambiar clave
                    if (ManejoSesion.DatosCIPOLSesion.DatosPadreCIPOLCliente.OtrosDatos("ForzarCambioClave") == "1")
                    {
                        try
                        {
                            if (ManejoSesion.DatosCIPOLSesion.DatosPadreCIPOLCliente.OtrosDatos("ForzarCambioClave.SeDebePreguntar") == "1")
                            {
                                ///     1 No obligatorio
                                ManejoSesion.ModoCambioClave = 1;
                                e.Authenticated = true;
                                DatosSesion.Control.Eliminar(Sesiones, SesionUsuario);
                                return;
                            }
                        }
                        catch (Exception)
                        {
                        }
                        ///     3 Obligatorio debido a que se debe forzar el cambio de la contraseña
                        ManejoSesion.ModoCambioClave = 3;
                        //[GonzaloP]          [viernes, 22 de julio de 2016]       Work-Item: 7289 - Se agrega el parámetro "true" para terminar la ejecución de la página actual.
                        Response.Redirect("ChangedPassword\\frmCambiarContrasenia.aspx?url=../frmLogin.aspx", true);
                        e.Authenticated = false;
                        DatosSesion.Control.Eliminar(Sesiones, SesionUsuario);
                        return;
                    }

                    e.Authenticated = true;
                }
                else
                {
                    ucLogin.FailureText = "Se encuentra habilitado el logueo por SSO. No se permite el acceso directo a CIPOL.";
                    e.Authenticated     = false;
                    DatosSesion.Control.Eliminar(Sesiones, SesionUsuario);
                    return;
                }
            }
            catch (Exception ex)
            {
                ucLogin.FailureText = ex.Message;
                e.Authenticated     = false;
                DatosSesion.Control.Eliminar(Sesiones, SesionUsuario);
            }
        }