public ActionResult LogOff(string msg) { GerenciarAutenticacao.Deslogar(); FormsAuthentication.SignOut(); return(RedirectToAction("Logon", "Autenticacao")); }
public bool AlterarSenhaFuncionario(Funcionario funcionario, String novaSenha, String confirmarNovaSenha, BancoDeDados banco = null) { if (!VerificarAlterarFuncionario(funcionario.Id)) { return(false); } if (!_validar.AlterarSenhaFuncionario(User.Login, novaSenha, confirmarNovaSenha)) { return(false); } string senhaNovaHash = GerenciarAutenticacao.Criptografar(User.Login, novaSenha); if (_busUsuario.VerificarHistoricoSenha(funcionario.Usuario.Id, senhaNovaHash, _configUsuario.Obter <Int32>(ConfiguracaoUsuario.keyQtdVerificaoUltimaSenha))) { Validacao.Add(Mensagem.Login.HistoricoSenha(_configUsuario.Obter <Int32>(ConfiguracaoUsuario.keyQtdVerificaoUltimaSenha))); return(false); } using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(banco)) { bancoDeDados.IniciarTransacao(); _busUsuario.AlterarSenha(funcionario.Usuario, GerenciarAutenticacao.Criptografar(User.Login, novaSenha), GerenciarAutenticacao.ObterAutenticacaoExecutor(), bancoDeDados); _da.AlterarSenha(funcionario.Usuario.Id, null, banco); bancoDeDados.Commit(); } Validacao.Add(Mensagem.Funcionario.AlterarSenhaFuncionario); return(true); }
public void Salvar(Administrador obj, String senha, String ConfirmarSenha, bool AlterarSenha) { BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(); try { if (_validar.Salvar(obj, senha, ConfirmarSenha, AlterarSenha)) { #region Mensagem Mensagem msgSucesso = Mensagem.Administrador.Salvar; if (obj.Id > 0) { msgSucesso = Mensagem.Administrador.Editar; } #endregion bancoDeDados = BancoDeDados.ObterInstancia(); bancoDeDados.IniciarTransacao(); GerenciadorTransacao.ObterIDAtual(); #region Usuario string hashSenha = GerenciarAutenticacao.Criptografar(obj.Usuario.Login, senha); AutenticacaoExecutor executor = GerenciarAutenticacao.ObterAutenticacaoExecutor(); if (obj.Usuario.Id <= 0) { _busUsuario.Salvar(obj.Usuario, hashSenha, executor, bancoDeDados); } else { if (!String.IsNullOrEmpty(senha)) { _busUsuario.AlterarSenha(obj.Usuario, hashSenha, executor, bancoDeDados); obj.Situacao = 3; //Alterar senha } } #endregion #region Funcionário _da.Salvar(obj, bancoDeDados); #endregion bancoDeDados.Commit(); Validacao.Add(msgSucesso); } } catch (Exception exc) { bancoDeDados.Rollback(); Validacao.AddErro(exc); } finally { bancoDeDados.Dispose(); } }
public bool AlterarSituacao(int id, int situacao, string motivo) { if (_validar.AlterarSituacao(situacao, motivo)) { AutenticacaoExecutor executor = GerenciarAutenticacao.ObterAutenticacaoExecutor(); _da.AlterarSituacao(id, situacao, motivo); Validacao.Add(Mensagem.Funcionario.AlterarSituacao); return(true); } return(false); }
public bool AlterarSenha(String login, String senha, String novaSenha, String confirmarNovaSenha, BancoDeDados banco = null) { if (!_validar.AlterarSenha(login, senha, novaSenha, confirmarNovaSenha)) { return(false); } Usuario usuario = _busUsuario.ValidarUsuario(login, GerenciarAutenticacao.Criptografar(login, senha)); if (usuario == null || usuario.Id == 0) { Validacao.Add(Mensagem.Login.LoginSenhaInvalido); return(false); } string senhaNovaHash = GerenciarAutenticacao.Criptografar(login, novaSenha); if (_busUsuario.VerificarHistoricoSenha(usuario.Id, senhaNovaHash, _configUsuario.Obter <Int32>(ConfiguracaoUsuario.keyQtdVerificaoUltimaSenha))) { Validacao.Add(Mensagem.Login.HistoricoSenha(_configUsuario.Obter <Int32>(ConfiguracaoUsuario.keyQtdVerificaoUltimaSenha))); return(false); } //Caso alterar a senha quando logado Funcionario funcionario = _da.ObterFuncionarioExecutor(login); AutenticacaoExecutor executor = GerenciarAutenticacao.ObterAutenticacaoExecutor(); if (executor == null) { executor = new AutenticacaoExecutor(); executor.Tipo = (int)eExecutorTipo.Interno; executor.UsuarioId = funcionario.Usuario.Id; executor.Tid = funcionario.Tid; } using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(banco)) { bancoDeDados.IniciarTransacao(); _busUsuario.AlterarSenha(usuario, senhaNovaHash, executor, bancoDeDados); _da.AlterarSenha(usuario.Id, funcionario, banco); bancoDeDados.Commit(); } Validacao.Add(Mensagem.Login.SenhaAlterada); return(true); }
private LogonVM RecuperarSenha(LogonVM viewModel, string cpf, string email) { Validacao.Erros.Clear(); if (!GerenciarAutenticacao.ValidarRecuperacaoSenha(cpf, email)) { viewModel.EsqueciSenha = true; viewModel.AlterarSenhaMsg = "Será gerada nova chave de validação que lhe permitirá restabelecer o acesso ao sistema. A chave será enviada ao e-mail registrado no seu cadastro do SIMLAM."; return(viewModel); } GerenciarAutenticacao.RecuperarSenha(cpf, email); return(viewModel); }
protected void Application_AuthenticateRequest(object sender, EventArgs e) { HttpCookie c = Request.Cookies[FormsAuthentication.FormsCookieName]; if (c == null) { return; } FormsAuthenticationTicket ticket = FormsAuthentication.Decrypt(c.Value); string login = ticket.Name; string sessionId = ticket.UserData; GerenciarAutenticacao.CarregarUser(login, sessionId); }
public ActionResult TransferirSistema(int id, string motivo) { TransferirVM vm = new TransferirVM(); if (_bus.TransferirSistema(id, motivo)) { GerenciarAutenticacao.Deslogar(); FormsAuthentication.SignOut(); } else { Administrador adm = _bus.Obter(id); vm.Id = adm.Id; vm.Nome = adm.Nome; } return(Json(new { Msg = Validacao.Erros, @Vm = vm })); }
public bool AlterarDados(CredenciadoPessoa credenciado, string senha, string confirmarSenha) { try { credenciado.Id = credenciado.Pessoa.CredenciadoId.GetValueOrDefault(); credenciado.Usuario.Id = User.UsuarioId; credenciado.Usuario.Login = User.Login; if (_validar.VerificarAlterarDados(credenciado, senha, confirmarSenha)) { GerenciadorTransacao.ObterIDAtual(); using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(UsuarioCredenciado)) { bancoDeDados.IniciarTransacao(); #region Alterar senha if (credenciado.AlterarSenha) { string hashSenha = GerenciarAutenticacao.Criptografar(credenciado.Usuario.Login, senha); _busUsuario.AlterarSenha(credenciado.Usuario, hashSenha, GerenciarAutenticacao.ObterAutenticacaoExecutor(), bancoDeDados); } #endregion #region Pessoa _pessoaCredenciadoBus.Salvar(credenciado.Pessoa, bancoDeDados); CredenciadoPessoa aux = Obter(credenciado.Id, true); _da.Salvar(aux, bancoDeDados); bancoDeDados.Commit(); #endregion } } } catch (Exception exc) { Validacao.AddErro(exc); } return(Validacao.EhValido); }
private void assertLoginSession(String login) { ControllerContextMock.SetupNormalContext(testController); String senha = "123456"; String sessionId = ""; if (GerenciarAutenticacao.ValidarLogOn(login, senha, out sessionId)) { if (!testController.HasToAlterarSenha(login)) { this.assertNormalLoginBehavior(login, senha); } else { this.assertChangePassLoginBehavior(login, senha); } } }
public bool Reativar(CredenciadoPessoa credenciado, String senha, String confirmarSenha) { try { if (_validar.ValidarReativar(credenciado.Chave, senha, confirmarSenha)) { using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(UsuarioCredenciado)) { bancoDeDados.IniciarTransacao(); GerenciadorTransacao.ObterIDAtual(); string hashSenha = GerenciarAutenticacao.Criptografar(credenciado.Usuario.Login, senha); AutenticacaoExecutor executor = new AutenticacaoExecutor(); executor.Tipo = (int)eExecutorTipo.Credenciado; executor.Tid = credenciado.Tid; executor.UsuarioId = credenciado.Usuario.Id; _busUsuario.AlterarSenha(credenciado.Usuario, hashSenha, executor, bancoDeDados); Executor executorHistorico = new Executor(); executorHistorico.Id = credenciado.Id; executorHistorico.Tid = credenciado.Tid; executorHistorico.Nome = credenciado.Nome; executorHistorico.Login = credenciado.Usuario.Login; executorHistorico.Tipo = eExecutorTipo.Credenciado; _da.Ativar(credenciado, bancoDeDados, executorHistorico); bancoDeDados.Commit(); } } } catch (Exception exc) { Validacao.AddErro(exc); } return(Validacao.EhValido); }
private static Mock <HttpContextBase> getContextMock(bool isAjaxContext, string login) { Mock <HttpRequestBase> request = ControllerContextMock.getRequestMock(isAjaxContext); Mock <HttpContextBase> context = new Mock <HttpContextBase>(); context .SetupGet(x => x.Request) .Returns(request.Object); context .SetupGet(x => x.Cache) .Returns(new Cache()); HttpContext.Current = new HttpContext( new HttpRequest(null, "http://tempuri.org", null), new HttpResponse(null) ); GerenciarAutenticacao.CarregarUser(login); return(context); }
protected void Application_AuthenticateRequest(object sender, EventArgs e) { HttpCookie c = Request.Cookies[FormsAuthentication.FormsCookieName]; if (c == null) { return; } FormsAuthenticationTicket ticket = FormsAuthentication.Decrypt(c.Value); string login = ticket.Name; string sessionId = ticket.UserData; GerenciarAutenticacao.CarregarUser(login, sessionId); #region Alerta de E-PTV HttpCookie cookieEPTV = Request.Cookies["eptv"]; PTVBus _bus = new PTVBus(); if (cookieEPTV != null) { if (Convert.ToDateTime(cookieEPTV.Value).AddMinutes(5) <= DateTime.Now) { //se já tiver se passado 5 minutos ou mais desde que o valor do cookie foi atualizado //substitui o cookie por um novo, com a data atual, e faz a verificação de alerta de EPTV HttpCookie aCookie = new HttpCookie("eptv"); aCookie.Value = DateTime.Now.ToString(); aCookie.Expires = DateTime.Now.AddDays(1); Response.Cookies.Add(aCookie); var usuario = (HttpContext.Current.User as EtramitePrincipal)?.EtramiteIdentity ?? null; _bus.VerificaAlertaEPTV(usuario?.FuncionarioId ?? 0, login); //emite o alerta } } #endregion Alerta de E-PTV }
public bool Salvar(Funcionario funcionario, String senha, String ConfirmarSenha) { try { if (_validar.Salvar(funcionario, senha, ConfirmarSenha)) { #region Mensagem Mensagem msgSucesso = Mensagem.Funcionario.Salvar; if (funcionario.Id > 0) { msgSucesso = Mensagem.Funcionario.Editar; } if (funcionario.Id > 0 && funcionario.Tipo != 3) { throw new Exception("Tipo de funcionário inválido"); } #endregion #region Arquivos/Diretorio ArquivoBus _busArquivo = new ArquivoBus(eExecutorTipo.Interno); if (funcionario.Arquivo != null && !String.IsNullOrWhiteSpace(funcionario.Arquivo.TemporarioNome)) { if (funcionario.Arquivo.Id == 0) { funcionario.Arquivo = _busArquivo.Copiar(funcionario.Arquivo); } } #endregion GerenciadorTransacao.ObterIDAtual(); using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia()) { bancoDeDados.IniciarTransacao(); #region Usuario string hashSenha = GerenciarAutenticacao.Criptografar(funcionario.Usuario.Login, senha); AutenticacaoExecutor executor = GerenciarAutenticacao.ObterAutenticacaoExecutor(); if (funcionario.Usuario.Id <= 0) { _busUsuario.Salvar(funcionario.Usuario, hashSenha, executor, bancoDeDados); } else { if (!String.IsNullOrEmpty(senha)) { _busUsuario.AlterarSenha(funcionario.Usuario, hashSenha, executor, bancoDeDados); funcionario.Situacao = 5; //Alterar senha } } #endregion #region Arquivos/Banco ArquivoDa arquivoDa = new ArquivoDa(); if (funcionario.Arquivo != null && !String.IsNullOrWhiteSpace(funcionario.Arquivo.TemporarioNome)) { if (funcionario.Arquivo.Id == 0) { arquivoDa.Salvar(funcionario.Arquivo, User.FuncionarioId, User.Name, User.Login, (int)eExecutorTipo.Interno, User.FuncionarioTid, bancoDeDados); } } #endregion _da.Salvar(funcionario, bancoDeDados); bancoDeDados.Commit(); } Validacao.Add(msgSucesso); } } catch (Exception exc) { Validacao.AddErro(exc); } return(Validacao.EhValido); }
public ActionResult LogOn(string login, string senha, bool?alterarSenha, string novaSenha, string confirmarNovaSenha, string returnUrl) { LogonVM viewModel = new LogonVM() { AlterarSenha = alterarSenha ?? false }; viewModel.IsAjaxRequest = Request.IsAjaxRequest(); try { string strSessionId = null; if (!GerenciarAutenticacao.ValidarLogOn(login, senha, out strSessionId)) { if (Request.IsAjaxRequest()) { return(PartialView("LogOnPartial", new LogonVM() { IsAjaxRequest = Request.IsAjaxRequest() })); } else { return(View(viewModel)); } } FuncionarioBus busFuncionario = new FuncionarioBus(new FuncionarioValidar()); string alterarSenhaMsg = busFuncionario.AlterarSenhaMensagem(login); if (!String.IsNullOrEmpty(alterarSenhaMsg)) { Validacao.Erros.Clear(); if (!viewModel.AlterarSenha || !busFuncionario.AlterarSenha(login, senha, novaSenha, confirmarNovaSenha)) { viewModel = new LogonVM() { AlterarSenha = true, AlterarSenhaMsg = alterarSenhaMsg }; if (Request.IsAjaxRequest()) { return(PartialView("LogOnPartial", new LogonVM() { IsAjaxRequest = Request.IsAjaxRequest() })); } else { return(View(viewModel)); } } } FormsAuthentication.SetAuthCookie(login, true); FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(1, login, DateTime.Now, DateTime.Now.Add(FormsAuthentication.Timeout), true, strSessionId); HttpCookie cookie = Request.Cookies[FormsAuthentication.FormsCookieName]; cookie.Value = FormsAuthentication.Encrypt(ticket); GerenciarAutenticacao.CarregarUser(login); BusMenu.Menu = null; if (Request.IsAjaxRequest()) { return(PartialView("LogOnPartial", new LogonVM() { IsAjaxRequest = Request.IsAjaxRequest() })); } else if (!String.IsNullOrEmpty(returnUrl)) { return(Redirect(Validacao.QueryParamSerializer(HttpUtility.UrlDecode(returnUrl)))); } else { return(RedirectToAction("Index", "Home", Validacao.QueryParamSerializer())); } } catch (Exception exc) { Validacao.AddErro(exc); } if (Request.IsAjaxRequest()) { return(RedirectToAction("Index", "Home", Validacao.QueryParamSerializer())); } else { return(View(viewModel)); } }
public ActionResult LogOn(string login, string senha, bool?alterarSenha, string novaSenha, string confirmarNovaSenha, string returnUrl, bool?esqueciSenha, bool?verificarTrocarSenha, string email, string cpf) { LogonVM viewModel = new LogonVM() { AlterarSenha = alterarSenha ?? false, EsqueciSenha = esqueciSenha }; viewModel.IsAjaxRequest = Request.IsAjaxRequest(); if (esqueciSenha == true) { viewModel.AlterarSenhaMsg = "Será gerada nova chave de validação que lhe permitirá restabelecer o acesso ao sistema. A chave será enviada ao e-mail registrado no seu cadastro do SIMLAM."; if (Request.IsAjaxRequest()) { return(this.getAjaxLogOnPartial()); } return(View(viewModel)); } if (verificarTrocarSenha == true) { viewModel = RecuperarSenha(viewModel, cpf, email); return(View(viewModel)); } try { string strSessionId = null; if (!GerenciarAutenticacao.ValidarLogOn(login, senha, out strSessionId)) { if (Request.IsAjaxRequest()) { return(this.getAjaxLogOnPartial()); } return(View(viewModel)); } CredenciadoBus credenciadoBus = new CredenciadoBus(new CredenciadoValidar()); string alterarSenhaMsg = credenciadoBus.AlterarSenhaMensagem(login); if (!String.IsNullOrEmpty(alterarSenhaMsg)) { Validacao.Erros.Clear(); if (!viewModel.AlterarSenha || !credenciadoBus.AlterarSenha(login, senha, novaSenha, confirmarNovaSenha)) { viewModel = new LogonVM() { AlterarSenha = true, AlterarSenhaMsg = alterarSenhaMsg }; if (Request.IsAjaxRequest()) { return(this.getAjaxLogOnPartial()); } return(View(viewModel)); } } this.formsAuthenticationService.SetAuthCookie(login, true); FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(1, login, DateTime.Now, DateTime.Now.Add(FormsAuthentication.Timeout), true, strSessionId); HttpCookie cookie = null; String cookieName = this.formsAuthenticationService.FormsCookieName; if (cookieName != null) { cookie = Request.Cookies[cookieName]; } if (cookie != null) { cookie.Value = this.formsAuthenticationService.Encrypt(ticket); } GerenciarAutenticacao.CarregarUser(login); BusMenu.Menu = null; if (Request.IsAjaxRequest()) { return(PartialView("LogOnPartial", new LogonVM() { IsAjaxRequest = Request.IsAjaxRequest() })); } if (!String.IsNullOrEmpty(returnUrl)) { return(Redirect(Validacao.QueryParamSerializer(HttpUtility.UrlDecode(returnUrl)))); } return(RedirectToAction("Index", "Home", Validacao.QueryParamSerializer()) as RedirectToRouteResult);; } catch (Exception exc) { Validacao.AddErro(exc); } if (Request.IsAjaxRequest()) { return(RedirectToAction("Index", "Home", Validacao.QueryParamSerializer())); } return(View(viewModel)); }
internal bool Autenticar(string login, String senhaHash, int timeout, out String userSessionId) { bool usuarioValido = false; userSessionId = string.Empty; Usuario usuarioAuditoria = new Usuario(); usuarioAuditoria.Login = login; //Necessario para auditoria try { usuarioAuditoria.Ip = HttpContext.Current.Request.UserHostAddress; #region Busca Usuario/Credenciado e verifica validade Usuario usuario = _busUsuario.Obter(login); //Deve retornar APENAS se usuario não existir if (usuario == null) { Validacao.Add(Mensagem.Login.LoginSenhaInvalido); return(false); } usuarioValido = String.Equals(usuario.senhaHash, senhaHash); usuarioAuditoria.Id = usuario.Id; usuarioAuditoria.TID = usuario.TID; //Buscar funcionario e grava num de tentativas Funcionario funcionario = _da.ObterFuncionarioLogin(usuario.Id, timeout); //Deve retornar APENAS se funcionario não existir if (funcionario == null) { Validacao.Add(Mensagem.Login.LoginSenhaInvalido); return(false); } funcionario.Usuario = usuario; #endregion #region Execução Obrigatoria [Independe de status do funcionario] string strSessionForcarLogoff = string.Empty; //Não se pode char busUsuario Autenticar antes do metodo no finally!!! if (usuarioValido && funcionario.Logado) { GerenciarAutenticacao.Deslogar(login, true); if (usuarioValido && funcionario.ForcarLogout) { strSessionForcarLogoff = funcionario.SessionId; if (!String.Equals(funcionario.Usuario.Ip, usuarioAuditoria.Ip)) { Validacao.Add(Mensagem.Login.SessaoDerrubada); } } } #endregion #region 2 - Bloqueio if (funcionario.Tentativa > _config.Obter <Int32>(ConfiguracaoCredenciado.KeyNumTentativas)) { funcionario.Situacao = 2; // 2 - Bloqueado funcionario.Usuario = new Usuario() { Login = login }; _da.AlterarSituacao(funcionario.Id, funcionario.Situacao, null, funcionario); Validacao.Add(Mensagem.Login.FuncionarioBloqueado); return(false); } if (funcionario.Situacao == 2) // 2-Ausente { Validacao.Add(Mensagem.Login.SituacaoInvalida(Situacoes.Single(x => x.Id == funcionario.Situacao).Nome)); return(false); } #endregion //Fazer aqui //Acesso não permitido nestes horários e/ou dia! Entre em contato com o administrador do sistema #region 6 - Senha Vencida // 6 -Senha Vencida if (_da.VerificarSenhaVencida(usuario.Id, funcionario)) { //Mensagem gerada na interface return(false); } #endregion #region 4 - Ausente if (funcionario.Situacao == 4) // 4-Ausente { Validacao.Add(Mensagem.Login.SituacaoInvalida(Situacoes.Single(x => x.Id == funcionario.Situacao).Nome)); return(false); } #endregion #region Mensagem Número de tentativas if (!usuarioValido && funcionario.Situacao != 2) //2 - Bloqueado { Validacao.Add(Mensagem.Login.NumTentativas(funcionario.Tentativa, _config.Obter <Int32>(ConfiguracaoCredenciado.KeyNumTentativas))); } #endregion //Efetiva a autenticação de credenciado [Atenção para o finally] if (usuarioValido) { funcionario.SessionId = Guid.NewGuid().ToString(); userSessionId = funcionario.SessionId; //Parâmetro out deste metodo!!! _da.Autenticar(funcionario, strSessionForcarLogoff); } } catch { usuarioValido = false; throw; } finally { //Autentica Usuario, gera historico e linha de auditoria _busUsuario.Autenticar(usuarioAuditoria, usuarioValido, (int)eExecutorTipo.Interno); } return(usuarioValido); }
public ActionResult LogOn(string login, string senha, bool?alterarSenha, string novaSenha, string confirmarNovaSenha, string returnUrl) { LogonVM viewModel = new LogonVM() { AlterarSenha = alterarSenha ?? false }; viewModel.IsAjaxRequest = Request.IsAjaxRequest(); try { string strSessionId = null; if (!GerenciarAutenticacao.ValidarLogOn(login, senha, out strSessionId)) { if (Request.IsAjaxRequest()) { return(PartialView("LogOnPartial", new LogonVM() { IsAjaxRequest = Request.IsAjaxRequest() })); } else { return(View(viewModel)); } } FuncionarioBus busFuncionario = new FuncionarioBus(new FuncionarioValidar()); string alterarSenhaMsg = busFuncionario.AlterarSenhaMensagem(login); if (!String.IsNullOrEmpty(alterarSenhaMsg)) { Validacao.Erros.Clear(); if (!viewModel.AlterarSenha || !busFuncionario.AlterarSenha(login, senha, novaSenha, confirmarNovaSenha)) { viewModel = new LogonVM() { AlterarSenha = true, AlterarSenhaMsg = alterarSenhaMsg }; if (Request.IsAjaxRequest()) { return(PartialView("LogOnPartial", new LogonVM() { IsAjaxRequest = Request.IsAjaxRequest() })); } else { return(View(viewModel)); } } } this.formsAuthenticationService.SetAuthCookie(login, true); FormsAuthenticationTicket ticket = new FormsAuthenticationTicket(1, login, DateTime.Now, DateTime.Now.Add(FormsAuthentication.Timeout), true, strSessionId); HttpCookie cookie = null; String cookieName = this.formsAuthenticationService.FormsCookieName; if (cookieName != null) { cookie = Request.Cookies[cookieName]; } if (cookie != null) { cookie.Value = this.formsAuthenticationService.Encrypt(ticket); } //Cria o cookie que é usado para a verificação periódica de E-PTVs aguardando análise. #region Insere cookie EPTV InsereCookieEPTV(); #endregion Insere cookie EPTV GerenciarAutenticacao.CarregarUser(login); BusMenu.Menu = null; //Gera a mensagem de alerta de E-PTV (se houver) #region Alerta de E-PTV var funcionario = new FuncionarioBus().ObterFuncionarioAutenticacao(login); PTVBus _busPTV = new PTVBus(); _busPTV.VerificaAlertaEPTV(funcionario.Id, login); #endregion Alerta de E-PTV if (Request.IsAjaxRequest()) { return(PartialView("LogOnPartial", new LogonVM() { IsAjaxRequest = Request.IsAjaxRequest() })); } else if (!String.IsNullOrEmpty(returnUrl)) { return(Redirect(Validacao.QueryParamSerializer(HttpUtility.UrlDecode(returnUrl)))); } else { return(RedirectToAction("Index", "Home", Validacao.QueryParamSerializer())); } } catch (Exception exc) { Validacao.AddErro(exc); } if (Request.IsAjaxRequest()) { return(RedirectToAction("Index", "Home", Validacao.QueryParamSerializer())); } else { return(View(viewModel)); } }
public bool Ativar(CredenciadoPessoa credenciado, String senha, String confirmarSenha) { try { if (_validar.ValidarAtivar(credenciado, senha, confirmarSenha)) { using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(UsuarioCredenciado)) { Executor executorHistorico = new Executor(); executorHistorico.Id = credenciado.Id; executorHistorico.Tid = credenciado.Tid; executorHistorico.Nome = credenciado.Nome; executorHistorico.Login = credenciado.Usuario.Login; executorHistorico.Tipo = eExecutorTipo.Credenciado; bancoDeDados.IniciarTransacao(); GerenciadorTransacao.ObterIDAtual(); #region Pessoa using (BancoDeDados bancoDeDadosInterno = BancoDeDados.ObterInstancia()) { bancoDeDadosInterno.IniciarTransacao(); if (!_pessoaInternoBus.Existe(credenciado.Pessoa.CPFCNPJ, bancoDeDadosInterno)) { credenciado.Pessoa = _pessoaCredenciadoBus.Obter(credenciado.Pessoa.Id, bancoDeDados); int id = credenciado.Pessoa.Id; credenciado.Pessoa.Id = 0; #region Juridica Pessoa/Representantes if (credenciado.Pessoa.IsJuridica && credenciado.Pessoa.Juridica.Representantes != null) { Pessoa pessoaAux = null; for (int i = 0; i < credenciado.Pessoa.Juridica.Representantes.Count; i++) { pessoaAux = credenciado.Pessoa.Juridica.Representantes[i]; int representanteInternoID = _pessoaInternoBus.ObterId(pessoaAux.CPFCNPJ, bancoDeDadosInterno); if (representanteInternoID == 0) { //Cria a pessoa do representante no interno pessoaAux = _pessoaCredenciadoBus.Obter(pessoaAux.Id, bancoDeDados); pessoaAux.Id = 0; #region Conjuge if (pessoaAux.Fisica.ConjugeId > 0) { int conjugeInternoId = _pessoaInternoBus.ObterId(pessoaAux.Fisica.ConjugeCPF, bancoDeDadosInterno); if (conjugeInternoId == 0) { // Cria Conjuge do representante no interno Pessoa pessoaConjuge = _pessoaCredenciadoBus.Obter(pessoaAux.Fisica.ConjugeId.GetValueOrDefault(), bancoDeDados); pessoaConjuge.Id = 0; pessoaConjuge.Fisica.ConjugeId = 0; _pessoaInternoBus.Salvar(pessoaConjuge, bancoDeDadosInterno, executorHistorico); pessoaAux.Fisica.ConjugeId = pessoaConjuge.Id; } else { pessoaAux.Fisica.ConjugeId = conjugeInternoId; } } #endregion _pessoaInternoBus.Salvar(pessoaAux, bancoDeDadosInterno, executorHistorico); credenciado.Pessoa.Juridica.Representantes[i].Id = pessoaAux.Id; } else { credenciado.Pessoa.Juridica.Representantes[i].Id = representanteInternoID; } } } #endregion #region Fisica Conjuge if (credenciado.Pessoa.IsFisica && credenciado.Pessoa.Fisica.ConjugeId > 0) { int conjugeInternoId = _pessoaInternoBus.ObterId(credenciado.Pessoa.Fisica.ConjugeCPF, bancoDeDadosInterno); if (conjugeInternoId == 0) { // Cria Conjuge do representante no interno Pessoa pessoaConjuge = _pessoaCredenciadoBus.Obter(credenciado.Pessoa.Fisica.ConjugeId.GetValueOrDefault(), bancoDeDados); pessoaConjuge.Id = 0; pessoaConjuge.Fisica.ConjugeId = 0; _pessoaInternoBus.Salvar(pessoaConjuge, bancoDeDadosInterno, executorHistorico); credenciado.Pessoa.Fisica.ConjugeId = pessoaConjuge.Id; } else { credenciado.Pessoa.Fisica.ConjugeId = conjugeInternoId; } } #endregion _pessoaInternoBus.Salvar(credenciado.Pessoa, bancoDeDadosInterno, executorHistorico); credenciado.Pessoa.Id = id; } } #endregion #region Usuário string hashSenha = GerenciarAutenticacao.Criptografar(credenciado.Usuario.Login, senha); if (credenciado.Usuario.Id <= 0) { AutenticacaoExecutor executor = new AutenticacaoExecutor(); executor.Tipo = (int)eExecutorTipo.Credenciado; executor.UsuarioId = credenciado.Id; executor.Tid = credenciado.Tid; _busUsuario.Salvar(credenciado.Usuario, hashSenha, executor, bancoDeDados); } _da.Ativar(credenciado, bancoDeDados, executorHistorico); bancoDeDados.Commit(); #endregion } } } catch (Exception exc) { Validacao.AddErro(exc); } return(Validacao.EhValido); }
internal bool Autenticar(string login, String senhaHash, int timeout, out String userSessionId, BancoDeDados banco) { bool usuarioValido = false; userSessionId = string.Empty; Usuario usuarioAuditoria = new Usuario(); usuarioAuditoria.Login = login; //Necessario para auditoria try { using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(banco)) { bancoDeDados.IniciarTransacao(); usuarioAuditoria.Ip = HttpContext.Current.Request.UserHostAddress; #region Busca Usuario/Credenciado e verifica validade Usuario usuario = _busUsuario.Obter(login, bancoDeDados); //Deve retornar APENAS se usuario não existir if (usuario == null) { Validacao.Add(Mensagem.Login.LoginSenhaInvalido); return(false); } usuarioValido = String.Equals(usuario.senhaHash, senhaHash); usuarioAuditoria.Id = usuario.Id; usuarioAuditoria.TID = usuario.TID; //Buscar Credenciado e grava num de tentativas CredenciadoPessoa credenciado = _da.ObterCredenciadoLogin(usuario.Id, timeout); //Deve retornar APENAS se Credenciado não existir if (credenciado == null) { Validacao.Add(Mensagem.Login.LoginSenhaInvalido); return(false); } credenciado.Usuario = usuario; #endregion #region Execução Obrigatoria [Independe de status do credenciado] string strSessionForcarLogoff = string.Empty; //Não se pode char busUsuario Autenticar antes do metodo no finally!!! if (usuarioValido && credenciado.Logado) { GerenciarAutenticacao.Deslogar(login, true); if (usuarioValido && credenciado.ForcarLogout) { strSessionForcarLogoff = credenciado.SessionId; if (!String.Equals(credenciado.Usuario.Ip, usuarioAuditoria.Ip)) { Validacao.Add(Mensagem.Login.SessaoDerrubada); } } } #endregion #region Bloqueio e mensagem de bloqueado if (credenciado.Tentativa > _config.Obter <Int32>(ConfiguracaoCredenciado.KeyNumTentativas)) { credenciado.Situacao = (int)eCredenciadoSituacao.Bloqueado; credenciado.Usuario = new Usuario() { Login = login }; _da.AlterarSituacao(credenciado, bancoDeDados); Validacao.Add(Mensagem.Login.FuncionarioBloqueado); return(false); } if (credenciado.Situacao == (int)eCredenciadoSituacao.Bloqueado) { Validacao.Add(Mensagem.Login.SituacaoInvalida(CredenciadoSituacoes.Single(x => x.Id == credenciado.Situacao).Nome)); return(false); } #endregion #region Aguardando Chave if (credenciado.Situacao == (int)eCredenciadoSituacao.AguardandoAtivacao || credenciado.Situacao == (int)eCredenciadoSituacao.AguardandoChave) { Validacao.Add(Mensagem.Login.AguardandoChave); return(false); } #endregion //Fazer aqui //Acesso não permitido nestes horários e/ou dia! Entre em contato com o administrador do sistema #region Valida senha vencida // 4 -Senha Vencida if (_da.VerificarSenhaVencida(usuario.Id)) { //Mensagem gerada na interface return(false); } #endregion #region Mensagem Número de tentativas if (!usuarioValido && credenciado.Situacao != (int)eCredenciadoSituacao.Bloqueado) { Validacao.Add(Mensagem.Login.NumTentativas(credenciado.Tentativa, _config.Obter <Int32>(ConfiguracaoCredenciado.KeyNumTentativas))); } #endregion //Efetiva a autenticação de credenciado [Atenção para o finally] if (usuarioValido) { credenciado.SessionId = Guid.NewGuid().ToString(); userSessionId = credenciado.SessionId; //Parâmetro out deste metodo!!! _da.Autenticar(credenciado, strSessionForcarLogoff, bancoDeDados); } bancoDeDados.Commit(); } } catch { usuarioValido = false; throw; } finally { //Autentica Usuario, gera historico e linha de auditoria using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(banco)) { bancoDeDados.IniciarTransacao(); _busUsuario.Autenticar(usuarioAuditoria, usuarioValido, (int)eExecutorTipo.Credenciado, bancoDeDados); bancoDeDados.Commit(); } } return(usuarioValido); }