public Usuario InsertUsuario(Usuario oUsuario) { // Busco si existe la persona - Si no existe, creo Excepcion using (PersonaBusiness oPersonaBusiness = new PersonaBusiness()) { if (oPersonaBusiness.GetPersonaById(new Persona() { IdPersona = oUsuario.IdPersona }) == null) { throw new Exception(string.Format("La persona con id {0} no existe", oUsuario.IdPersona)); } } // Busco si ya existe el usuario - Si existe, creo Excepcion if (this.GetUsuarioById(oUsuario) != null) { throw new Exception(string.Format("El usuario {0} ya existe", oUsuario.User)); } // Inserto el usuario using (UsuarioDataAccess tDataAccess = new UsuarioDataAccess()) { // Encripto el pass + SALT oUsuario.Pass = EncriptarSHA256(oUsuario.Pass + oUsuario.User); tDataAccess.Insert(oUsuario); } return(this.GetUsuarioById(oUsuario)); }
/// <summary> /// Validar usuario con contraseña /// </summary> /// <param name="usuario"></param> /// <param name="supuestoPass"></param> /// <returns></returns> public UsuarioValidacion ValidarUsuario(string usuario, string supuestoPass, string plataforma) { UsuarioValidacion oUsuarioValidacion = new UsuarioValidacion(); // Obtengo el usuario Usuario user = this.GetUsuarioById(new Usuario() { User = usuario }); if (user == null) { oUsuarioValidacion.Result = "El usuario no existe"; return(oUsuarioValidacion); } // Si no es admin, no puede loguearse a la aplicación web if (plataforma.Equals(WEB) && !user.EsAdmin) { oUsuarioValidacion.Result = "No posee los permisos suficientes para acceder"; return(oUsuarioValidacion); } // Obtengo el supuesto HASH string supuestoHash = EncriptarSHA256(supuestoPass + usuario); // Comparo si los HASH son iguales => Si son iguales, el PASS es el correcto oUsuarioValidacion.Result = supuestoHash.Equals(user.Pass) ? "OK" : "Contraseña incorrecta"; // Si no es válido, no necesito el id if (oUsuarioValidacion.Result.Equals("OK")) { oUsuarioValidacion.IdPersona = user.IdPersona; // Obtengo datos de la persona using (PersonaBusiness oPersonaBusiness = new PersonaBusiness()) { Persona oPersona = oPersonaBusiness.GetPersonaById(new Persona() { IdPersona = user.IdPersona }); oUsuarioValidacion.Nombre = oPersona.Nombre; oUsuarioValidacion.Apellido = oPersona.Apellido; oUsuarioValidacion.IdCompania = oPersona.IdCompania; } } return(oUsuarioValidacion); }