Пример #1
0
        /// <summary>
        /// Registra los cambios realizados sobre los parámetros.
        ///
        /// TODO[CIPOLWEB]: hay pendientes.
        ///
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        protected void cmdGuardar_Click(object sender, EventArgs e)
        {
            ///''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
            //Autor: Gustavo Mazzaglia
            //Fecha de creación: 04/12/2001
            //Modificaciones:
            ///''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
            ///''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
            //                  DESCRIPCION DE VARIABLES LOCALES
            //strParam       : String que contiene los parámetros encriptados
            //bytBloqTer     : Cantidad de tiempo por bloqueo de terminal
            //bytBloqPan     : cantidad de timepo para bloquear el panel de ejecución
            //strAuditoria   : String que va a contener los datos de auditoría a realizar
            ///''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''


            lblSuccess.Text    = "";
            divSuccess.Visible = false;
            lblErrores.Text    = "";
            divError.Visible   = false;

            string strParam     = null;
            string strAuditoria = string.Empty;

            CifrarDatos.TresDES             objEncriptarNET = new CifrarDatos.TresDES();
            dcAdministrarPoliticasGenerales dcDatos         = new dcAdministrarPoliticasGenerales();

            //Valida parámetros ingresados.
            if (!ValidarDatos())
            {
                return;
            }

            ///
            if (mblnRegCreado)
            {
                //Si se debe auditar
                if (mstrParam[1] != this.txtParametros_1.Text)
                {
                    strAuditoria += COA.WebCipol.Presentacion.Utiles.cPrincipal.MensajeAuditoria(410, "", ManejoSesion.DatosCIPOLSesion.DatosPadreCIPOLCliente.Login, this.txtParametros_1.Text);
                }
                if (mstrParam[2] != this.txtParametros_2.Text)
                {
                    strAuditoria += COA.WebCipol.Presentacion.Utiles.cPrincipal.MensajeAuditoria(420, "", ManejoSesion.DatosCIPOLSesion.DatosPadreCIPOLCliente.Login, this.txtParametros_2.Text);
                }
                if (mstrParam[3] != this.txtLongMinPass.Text)
                {
                    strAuditoria += COA.WebCipol.Presentacion.Utiles.cPrincipal.MensajeAuditoria(430, "", ManejoSesion.DatosCIPOLSesion.DatosPadreCIPOLCliente.Login, this.txtLongMinPass.Text);
                }
                //longitud de contraseña.
                if (mstrParam[4] != this.txtParametros_4.Text)
                {
                    strAuditoria += COA.WebCipol.Presentacion.Utiles.cPrincipal.MensajeAuditoria(440, "", ManejoSesion.DatosCIPOLSesion.DatosPadreCIPOLCliente.Login, this.txtParametros_4.Text);
                }
                //duracion en dias de la contraseña
                if (mstrParam[5] != this.txtParametros_5.Text)
                {
                    strAuditoria += COA.WebCipol.Presentacion.Utiles.cPrincipal.MensajeAuditoria(450, "", ManejoSesion.DatosCIPOLSesion.DatosPadreCIPOLCliente.Login, this.txtParametros_5.Text);
                }
                if (mstrParam[6] != this.txtParametros_6.Text)
                {
                    strAuditoria += COA.WebCipol.Presentacion.Utiles.cPrincipal.MensajeAuditoria(460, "", ManejoSesion.DatosCIPOLSesion.DatosPadreCIPOLCliente.Login, this.txtParametros_6.Text);
                }
                if (mstrParam[7] != this.txtParametros_7.Text)
                {
                    strAuditoria += COA.WebCipol.Presentacion.Utiles.cPrincipal.MensajeAuditoria(470, "", ManejoSesion.DatosCIPOLSesion.DatosPadreCIPOLCliente.Login, this.txtParametros_7.Text);
                }
                //cantidad de ocntraseñas almacenadas
                if (mstrParam[8] != this.txtParametros_8.Text)
                {
                    strAuditoria += COA.WebCipol.Presentacion.Utiles.cPrincipal.MensajeAuditoria(480, "", ManejoSesion.DatosCIPOLSesion.DatosPadreCIPOLCliente.Login, this.txtParametros_8.Text);
                }

                //ditempo de inactividad
                //TODO[CIPOLWEB]: probar si es lo mismo a como estaba antes!
                //if (UBound(mstrParam) > 11) //??
                if (mstrParam.GetUpperBound(0) > 11)
                {
                    if (mstrParam[12] != (optModoPermisivo.Checked ? 0 : 1).ToString().Trim())
                    {
                        strAuditoria += COA.WebCipol.Presentacion.Utiles.cPrincipal.MensajeAuditoria(520, "", ManejoSesion.DatosCIPOLSesion.DatosPadreCIPOLCliente.Login, (optModoPermisivo.Checked ? "Permisivo" : "Restrictivo").ToString().Trim());
                    }
                }
                if (mstrParam.GetUpperBound(0) == 12)
                {
                    if (this.mshtNivelContraseña != System.Convert.ToInt16(this.cboNivelPass.SelectedValue))
                    {
                        strAuditoria += COA.WebCipol.Presentacion.Utiles.cPrincipal.MensajeAuditoria(530, ManejoSesion.DatosCIPOLSesion.DatosPadreCIPOLCliente.Login, this.cboNivelPass.Text, "");
                    }
                }
            }


            //TODO[CIPOLWEB]
            //[cipolweb] Eliminado -> - cantidad de tiempo, en minutos, para bloquear cada aplicación por inactividad
            strParam = strParam + 0 + Constantes.gstrSepParam;
            strParam = strParam + this.txtParametros_1.Text + Constantes.gstrSepParam;
            strParam = strParam + this.txtParametros_2.Text + Constantes.gstrSepParam;
            strParam = strParam + this.txtLongMinPass.Text + Constantes.gstrSepParam;
            strParam = strParam + this.txtParametros_4.Text + Constantes.gstrSepParam;
            strParam = strParam + this.txtParametros_5.Text + Constantes.gstrSepParam;
            strParam = strParam + this.txtParametros_6.Text + Constantes.gstrSepParam;
            strParam = strParam + this.txtParametros_7.Text + Constantes.gstrSepParam;
            strParam = strParam + this.txtParametros_8.Text + Constantes.gstrSepParam;

            //TODO[CIPOLWEB]: se agregan estos 2 ceros porque antes existían 2 parámetos (9 y 10) que no están más.
            //strParam = strParam + Convert.ToInt16("0" + this.txtParametros_9.Text).ToString() + Constantes.gstrSepParam;
            //strParam = strParam + Convert.ToInt16("0" + this.txtParametros_10.Text).ToString() + Constantes.gstrSepParam;
            strParam = strParam + 0 + Constantes.gstrSepParam;
            strParam = strParam + 0 + Constantes.gstrSepParam;
            //TODO[CIPOLWEB]
            //[cipolweb] Eliminado -> - cantidad de tiempo, en minutos, para bloquear el panel de ejecución por inactividad (0=2 minutos)
            strParam = strParam + 0;


            //Angel Lubenov - Gcp Cambios ID:????
            //se agrega un nuevo parametro, la permision sobre el agregado de
            //una nueva tarea.
            strParam = strParam + Constantes.gstrSepParam;
            //Angel Lubenov - Gcp Cambios ID:????
            //dependiendo de la opcion elejida en el option button, seteamos
            //el parametro de permision para decir si la asignacion de roles
            //va a ser PERMISIVA o RESTRICTIVA
            strParam = strParam + (optModoPermisivo.Checked == true ? "0" : "1").ToString();


            //Encripta los parámetros
            objEncriptarNET.Key = ManejoSesion.DatosCIPOLSesion.DatosPadreCIPOLCliente.Key;
            objEncriptarNET.IV  = ManejoSesion.DatosCIPOLSesion.DatosPadreCIPOLCliente.IV;
            strParam            = objEncriptarNET.Criptografia(CifrarDatos.Accion.Encriptacion, strParam);


            //Ingresa los parámetros
            if (mblnRegCreado)
            {
                //Si hubo cambios
                if (strAuditoria == "")
                {
                    // ScriptManager.RegisterStartupScript(this, GetType(), "",
                    //"page.MostrarMensaje('No se ha realizado ninguna modificación que guardar.');", true);
                    lblErrores.Text  = "No se ha realizado ninguna modificación que guardar.";
                    divError.Visible = true;
                    return;
                }
                else
                {
                    COA.WebCipol.Entidades.SE_PARAMETROS fila = ManejoSesion.PoliticasGenerales.lstSE_PARAMETROS[0];

                    //Registra Columna 4 [son los parámetros numéricos]. (ya está encriptada)
                    fila.COLUMNA4 = strParam;

                    //Registra Columna 5 [es el parámetros de nivel de seg de la pass]. (se encripta ahora)
                    objEncriptarNET     = new CifrarDatos.TresDES();
                    objEncriptarNET.Key = ManejoSesion.DatosCIPOLSesion.DatosPadreCIPOLCliente.Key;
                    objEncriptarNET.IV  = ManejoSesion.DatosCIPOLSesion.DatosPadreCIPOLCliente.IV;
                    fila.COLUMNA5       = objEncriptarNET.Criptografia(CifrarDatos.Accion.Encriptacion, this.cboNivelPass.SelectedValue.ToString());

                    //ManejoSesion.PoliticasGenerales.Tables[0].Rows.Add(new string[] { strAuditoria, "" });
                    ManejoSesion.PoliticasGenerales.lstSE_PARAMETROS.Add(new COA.WebCipol.Entidades.SE_PARAMETROS()
                    {
                        COLUMNA4 = strAuditoria
                    });

                    foreach (COA.WebCipol.Entidades.SE_PARAMETROS item in ManejoSesion.PoliticasGenerales.lstSE_PARAMETROS)
                    {
                        dcDatos.lstSE_PARAMETROS.Add(new SE_PARAMETROS()
                        {
                            COLUMNA4 = item.COLUMNA4, COLUMNA5 = item.COLUMNA5
                        });
                    }
                }
            }
            else
            {
                objEncriptarNET     = new CifrarDatos.TresDES();
                objEncriptarNET.Key = ManejoSesion.DatosCIPOLSesion.DatosPadreCIPOLCliente.Key;
                objEncriptarNET.IV  = ManejoSesion.DatosCIPOLSesion.DatosPadreCIPOLCliente.IV;

                ManejoSesion.PoliticasGenerales.lstSE_PARAMETROS.Add(new COA.WebCipol.Entidades.SE_PARAMETROS()
                {
                    COLUMNA4 = strParam, COLUMNA5 = objEncriptarNET.Criptografia(CifrarDatos.Accion.Encriptacion, this.cboNivelPass.SelectedValue.ToString())
                });

                foreach (COA.WebCipol.Entidades.SE_PARAMETROS item in ManejoSesion.PoliticasGenerales.lstSE_PARAMETROS)
                {
                    dcDatos.lstSE_PARAMETROS.Add(new SE_PARAMETROS()
                    {
                        COLUMNA4 = item.COLUMNA4, COLUMNA5 = item.COLUMNA5, Added = true
                    });
                }
            }

            //Registra modificaciones en la BD.
            COA.WebCipol.Fachada.FSeguridad facSeg = new FSeguridad();



            if (facSeg.AdministrarPoliticasGenerales(dcDatos))
            {
                ManejoSesion.gudParam.ModoAsignacionTareasYRoles = Convert.ToInt32((optModoPermisivo.Checked ? 0 : 1));
                //ScriptManager.RegisterStartupScript(this, GetType(), "",
                // "page.MostrarMensaje('Los datos fueron guardados correctamente.');", true);

                lblSuccess.Text    = "Los datos fueron guardados correctamente.";
                divSuccess.Visible = true;
                CargarPoliticasGenerales();
                return;
            }
            else
            {
                lblErrores.Text  = "No se han podido actualizar las Políticas Generales de Seguridad";
                divError.Visible = true;
                //ScriptManager.RegisterStartupScript(this, GetType(), "",

                // "page.MostrarMensaje('No se han podido actualizar las Políticas Generales de Seguridad');", true);
                return;
            }
        }
Пример #2
0
        /// <summary>
        /// Carga los datos actuales de los parámetros.
        ///
        /// TODO[CIPOLWEB]: hay pendientes.
        ///
        /// </summary>
        private void CargarPoliticasGenerales()
        {
            //Recupero parámetros de políticas generales.
            COA.WebCipol.Fachada.FSeguridad facSeg = new FSeguridad();
            ManejoSesion.PoliticasGenerales = facSeg.RecuperarPoliticasGenerales(); //TODO[CIPOLWEB]: ver si usamos esta var de sesión o la misma que usa en el login!!!!

            if (ManejoSesion.PoliticasGenerales.lstSE_PARAMETROS.Count > 0)
            {
                //Si existe un registro de parámetros, se debe realizar actualización
                mblnRegCreado = true;

                if (!System.Convert.IsDBNull(ManejoSesion.PoliticasGenerales.lstSE_PARAMETROS[0].COLUMNA4))
                {
                    CifrarDatos.TresDES objEncriptarNET = new CifrarDatos.TresDES();
                    objEncriptarNET.Key = ManejoSesion.DatosCIPOLSesion.DatosPadreCIPOLCliente.Key;
                    objEncriptarNET.IV  = ManejoSesion.DatosCIPOLSesion.DatosPadreCIPOLCliente.IV;

                    string strParamsEncriptados = ManejoSesion.PoliticasGenerales.lstSE_PARAMETROS[0].COLUMNA4;
                    string strParams            = objEncriptarNET.Criptografia(CifrarDatos.Accion.Desencriptacion, strParamsEncriptados);
                    mstrParam = Strings.Split(strParams, Constantes.gstrSepParam);

                    //TODO[CIPOLWEB]: ver esto del modo permisivo restrictivo, como sería. Probar.
                    //Angel - Gcp Cambios ID: ???? sistema permisivo o restrictivo.
                    //Parametro 12 - Define si el sistema es PERMISIVO o RESTRICTIVO
                    //con respecto a la asignacion de nuevas tareas y roles.
                    //verificamos si la directiva de seguridad
                    //no estaba en el sistema (esto es un control por
                    //viejas versiones)
                    if (mstrParam.GetUpperBound(0) < 12)
                    {
                        optModoPermisivo.Checked   = false;
                        optModoRestrictivo.Checked = true;
                    }
                    else
                    {
                        //TODO[CIPOLWEB]: ver esto del modo permisivo restrictivo, como sería. Probar.
                        //hay casos en que los 2 quedan como false???????????????? si no está ese param...
                        optModoPermisivo.Checked   = (System.Convert.ToInt16(mstrParam[12]) == 0);
                        optModoRestrictivo.Checked = (System.Convert.ToInt16(mstrParam[12]) == 1);
                    }

                    //Seguridad mixta
                    if (!ManejoSesion.DatosCIPOLSesion.DatosPadreCIPOLCliente.Seguridad_SoloDominio && !ValidarLoginSSO())
                    {
                        this.txtParametros_1.Text = mstrParam[1];
                        this.txtParametros_2.Text = mstrParam[2];
                        this.txtLongMinPass.Text  = mstrParam[3];
                        this.txtParametros_4.Text = mstrParam[4];
                        this.txtParametros_5.Text = mstrParam[5];
                        this.txtParametros_6.Text = mstrParam[6];
                        this.txtParametros_7.Text = mstrParam[7];
                        this.txtParametros_8.Text = mstrParam[8];

                        //Desencripta el campo que hace referencia al nivel de seguridad.
                        this.mshtNivelContraseña        = System.Convert.ToInt16(objEncriptarNET.Criptografia(CifrarDatos.Accion.Desencriptacion, ManejoSesion.PoliticasGenerales.lstSE_PARAMETROS[0].COLUMNA5));
                        this.cboNivelPass.SelectedValue = mshtNivelContraseña.ToString();
                    }
                    else //Seguridad integrada al dominio.
                    {
                        this.txtLongMinPass.Text     = mstrParam[3];
                        this.txtLongMinPass.Enabled  = false;
                        this.txtParametros_1.Enabled = false;
                        this.txtParametros_2.Enabled = false;
                        this.txtParametros_4.Enabled = false;
                        this.txtParametros_5.Enabled = false;
                        this.txtParametros_6.Enabled = false;
                        this.txtParametros_7.Enabled = false;
                        this.txtParametros_8.Enabled = false;
                        this.txtParametros_8.Enabled = false;

                        //Angel - Gcp Cambios ID:3044
                        //al ser seguridad integrada, movemos al combo
                        //en su primer opcion que es "sin requerimiento especifico"
                        mshtNivelContraseña             = Convert.ToInt16(COA.WebCipol.Comun.Constantes.genuNivelSeguridad.Sin_requerimiento_específico);
                        this.cboNivelPass.SelectedValue = mshtNivelContraseña.ToString();
                        this.cboNivelPass.Enabled       = false;
                    }
                }
            }
            //lblMensajeContrasenia.Text = lblMensajeContrasenia.Text.Replace("#NS#", gobjGeneral.NombreSistema.Trim())
        }