/// <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); }
/// <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(); } } }
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"; } }
/// <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); } }