/// <summary> /// Verifica se será necessário autenticar no webservice do cliente ou se utilizará senha salva no autenticador /// </summary> /// <param name="usu"> Objeto Usuário carregado do autenticador</param> /// <returns>Enum indicando onde será feita a validação: 1 [Webservice], 2 [Histórico de senhas] e 3 [Não encontrado a integração]</returns> public static eValidacaoWebService VerificaSenhaUsuarioWebService(SYS_Usuario usu) { eValidacaoWebService status = eValidacaoWebService.ValidarNoWebService; SYS_IntegracaoExternaTipoBO ietBO = new SYS_IntegracaoExternaTipoBO(); SYS_IntegracaoExternaTipo ietEntity = new SYS_IntegracaoExternaTipo { iet_id = usu.usu_integracaoExterna }; if (ietBO.getById(ietEntity)) { Guid usu_id = usu.usu_id; DataTable dtSenha = SYS_UsuarioSenhaHistoricoBO.SelecionaUltimaSenha(usu_id, null); if (dtSenha.Rows.Count > 0) { DateTime ush_data = Convert.ToDateTime(dtSenha.Rows[0]["max_data"].ToString()); TimeSpan a = DateTime.Now.Subtract(ush_data); if (a.Days > ietEntity.iet_qtdeDiasAutenticacao) { status = eValidacaoWebService.ValidarNoWebService; } else { status = eValidacaoWebService.ValidarComSenhaDoHistorico; } } } else { status = eValidacaoWebService.IntegrcacaoNaoEncontrada; } return(status); }
/// <summary> /// Salvar a senha do usuário no hitórico /// </summary> /// <param name="usu">Objeto Usuário carregado do autenticador</param> /// <param name="retornoWebService">Retorno do Webservice do cliente (por enquanto configurado o de Integração Externa : 0 [sucesso] e -1 [não encontrado / usuário ou senha não estão corretos])</param> /// <returns>Enum LoginStatus: 0 [Sucesso] ou 5[Erro]</returns> public static LoginStatus SalvarSenhaUsuario(SYS_Usuario usu, string retornoWebService) { SYS_UsuarioSenhaHistoricoDAO dao = new SYS_UsuarioSenhaHistoricoDAO(); LoginStatus status = LoginStatus.Sucesso; try { if (retornoWebService.Equals("0")) { string senhaDescriptografada = usu.usu_senha; dao._Banco.Open(IsolationLevel.ReadCommitted); eCriptografa criptografia = (eCriptografa)Enum.Parse(typeof(eCriptografa), Convert.ToString(usu.usu_criptografia), true); if (!Enum.IsDefined(typeof(eCriptografa), criptografia)) { criptografia = eCriptografa.TripleDES; } usu.usu_senha = UtilBO.CriptografarSenha(usu.usu_senha, criptografia); if (SYS_UsuarioSenhaHistoricoBO.Salvar(usu, dao._Banco)) { status = LoginStatus.Sucesso; } } else if (retornoWebService.Equals("-1")) {// CASO NÃO ENCONTRE O USUARIO OU A SENHA NÃO ESTEJA EM CONFORME status = LoginStatus.NaoEncontrado; } else {// OUTRO ERRO status = LoginStatus.Erro; } } catch (Exception e) { status = LoginStatus.Erro; dao._Banco.Close(e); // msg("Houve um erro na autenticação (SOAP).") } finally { dao._Banco.Close(); } return(status); }
/// <summary> /// Valida senha do usuário no histórico /// </summary> /// <param name="usu">Objeto Usuário carregado do autenticador</param> /// <returns>Enum LoginStatus : Sucesso, Expirado, Bloqueado e SenhaInvalida</returns> public static LoginStatus ValidarUsuarioHistoricoSenha(SYS_Usuario usu) { LoginStatus status = LoginStatus.Sucesso; DataTable dtSenha = SYS_UsuarioSenhaHistoricoBO.SelecionaUltimaSenha(usu.usu_id, null); if (dtSenha.Rows.Count > 0) { string senhaSalva = dtSenha.Rows[0]["ush_senha"].ToString(); string senha = usu.usu_senha; eCriptografa criptografia = (eCriptografa)Enum.Parse(typeof(eCriptografa), Convert.ToString(usu.usu_criptografia), true); if (!Enum.IsDefined(typeof(eCriptografa), criptografia)) { criptografia = eCriptografa.TripleDES; } usu.usu_senha = UtilBO.CriptografarSenha(usu.usu_senha, criptografia); if (!senhaSalva.Equals(usu.usu_senha)) { status = LoginStatus.SenhaInvalida; } else if ((usu.usu_situacao == 2) || (usu.usu_situacao == 3)) { status = LoginStatus.Bloqueado; } else if (usu.usu_situacao == 5) { status = LoginStatus.Expirado; } else { status = LoginStatus.Sucesso; } } return(status); }