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();
                }
            }
        }
예제 #2
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);
            }
        }