public void TestSaltText() { var hash = new OpenPOS.Cryptography.Salt.MD5("teste", 2, "teste").Hash; Assert.AreEqual(hash.Length, 32); }
/// <summary> /// Tratamentos antes de salvar o usuário na base de dados /// </summary> /// <param name="updating">Se é uma atualização ou inserção</param> public override void BeforeSave(bool updating) { base.BeforeSave(updating); //Passando a senha para todo em maiúscula //Senha = Senha.ToUpper(); //Cria nova senha if (!Unimake.Utilities.IsMD5(Senha) && oldPass != Senha) { Senha = new OpenPOS.Cryptography.Salt.MD5(Senha, Unimake.Convert.ToInt(Settings.Setting.PasswordMD5Loop), Unimake.Convert.ToBoolean(Settings.Setting.PasswordMD5UseKey) ? NomeLogin : "").Hash; } //Pesquisar o usuário de acordo com o GUID IList<IUsuario> contasUsuarios = new Usuario().Find<IUsuario>(new Where { { "cad_pessoa.guid = @guid", new Parameter { ParameterName = "@guid", Value = this.GUID.ToString() } } }); //Se achou um usuário if (contasUsuarios.Count > 0) { //Pesquisa qual a conta corrente desse usuário var contas = (from u in contasUsuarios select new { GUIDContaCorrente = u.ContaCorrente.GUID } ); //Percorre por todas as contas correntes foreach (var conta in contas) { //Se a conta corrente for diferente podemos marcar como excluido if (conta.GUIDContaCorrente.ToString() != this.ContaCorrente.GUID.ToString()) { //Marca como excluído as contas correntes Connection.ExecuteNonQuery(@"UPDATE fin_contacorrente SET excluido = @excluido WHERE guid = @guid", new[] { new Parameter { ParameterName = "@excluido", Value = Excluido.Sim }, new Parameter { ParameterName = "@guid", Value = conta.GUIDContaCorrente.ToString() } }); } } } }