/// <summary> /// Autentica a un Usuario para ingresar a una aplicación, validando que el número de intentos sea válido. /// Realiza las acciones correspondientes de acuerdo al estado del usuario autenticado. /// </summary> public void Autenticar() { sm = new SecurityManager(); var LoUsuario = new DS.SAI.Data.ClassUsuario(); string LsUsuario = this.txtUsuario.Text.Trim(); string LsContrasena = this.txtContrasena.Text.Trim(); string LsContraseñaENC = FormsAuthentication.HashPasswordForStoringInConfigFile(LsContrasena, "sha1"); try { LoUsuario = ValidarAcceso(LsUsuario, LsContraseñaENC); if (LoUsuario != null && LoUsuario.Autenticacion) { HttpCookie LoCookie; string LsCookie = string.Empty; string LsDatos = SecurityManager.GenerarDatos(LoUsuario); var LoTicket = new FormsAuthenticationTicket(1, LsUsuario, DateTime.Now, DateTime.Now.AddMinutes(60), false, LsDatos); Session.Timeout = 120; LsCookie = FormsAuthentication.Encrypt(LoTicket); LoCookie = new HttpCookie(FormsAuthentication.FormsCookieName, LsCookie); Response.Cookies.Add(LoCookie); Response.Redirect("~/Index.aspx", false); } } catch (ApplicationException ae) { Alert.Show(ae.Message, this.Page); } catch (Exception ex) { Alert.Show(ex.Message, this.Page); } }
public DS.SAI.Data.ClassUsuario ValidarAcceso(string PsUsuario, string PsPassword) { DateTime dDate, dLastMod, dExp; int ExpDays, iLogonAttempts; Boolean bLock; String sPass; var loUsuario = new DS.SAI.Data.ClassUsuario(); var acceso = new SecurityManager(); var dtUsuarios = acceso.ValidaUsuario(PsUsuario, PsPassword); if (dtUsuarios != null) { loUsuario.Usuario = dtUsuarios["fvuser_name"].ToString(); loUsuario.IdUsuario = int.Parse(dtUsuarios["fiid_user"].ToString()); loUsuario.IdArea = int.Parse(dtUsuarios["fiid_area"].ToString()); loUsuario.IdPlant = int.Parse(dtUsuarios["fiid_plant"].ToString()); loUsuario.IdEmpleado = int.Parse(dtUsuarios["fiid_employed"].ToString()); loUsuario.IdRol = int.Parse(dtUsuarios["fiRol"].ToString()); loUsuario.Perfil = dtUsuarios["fcDescription"].ToString(); loUsuario.Autenticacion = true; dDate = DateTime.Parse(dtUsuarios["fdDate"].ToString()); dLastMod = DateTime.Parse(dtUsuarios["fdModification_date"].ToString()); bLock = Boolean.Parse(dtUsuarios["fbLock"].ToString()); int.TryParse(dtUsuarios["fiLogonAttempts"].ToString(), out iLogonAttempts); sPass = dtUsuarios["fvpassword"].ToString(); if (sPass == PsPassword) { if (bLock) { loUsuario.Autenticacion = false; Alert.Show("El usuario esta bloqueado, favor de ponerse en contacto con el administrador del sistema", this.Page); } else if (iLogonAttempts > 0) { acceso.LogonAttempts(loUsuario.Usuario, false, 0); } } else { iLogonAttempts += 1; if (iLogonAttempts < 3) { acceso.LogonAttempts(loUsuario.Usuario, false, iLogonAttempts); Alert.Show("Usuario o contraseña incorrectos", this.Page); } else { acceso.LogonAttempts(loUsuario.Usuario, true, 3); Alert.Show("El usuario " + PsUsuario + " ha sido bloqueado, favor de ponerse encontacto con el administrador del sistema", this.Page); } } } else { Alert.Show("Usuario o contraseña incorrectos", this.Page); } return(loUsuario); }
public object Set_FinishTask(DA.ClassUsuario usuario, string sReponsable, int iTaskExchange) { try { if (usuario.IdEmpleado == int.Parse(sReponsable) || usuario.IdRol == 1) { return(datos.Set_FinishTask(iTaskExchange)); } else { throw new AccessViolationException(); } } catch (AccessViolationException aex) { throw new AccessViolationException(aex.Message); } catch (Exception ex) { throw new Exception(ex.Message); } }