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