public AutenticaTransfer Autenticar(AutenticaTransfer autenticaTransfer) { IQueryable <UsuarioEntity> query = _contexto.Set <UsuarioEntity>(); AutenticaTransfer autentica = new AutenticaTransfer(autenticaTransfer); UsuarioEntity usuario = new UsuarioEntity(); //-- Apelido query = query.Where(et => et.Apelido.Equals(autenticaTransfer.Apelido)); //-- Senha query = query.Where(et => et.Senha.Equals(autenticaTransfer.Senha)); usuario = query.SingleOrDefault(); if ((usuario != null) && (!string.IsNullOrEmpty(usuario.Apelido)) && (!string.IsNullOrEmpty(usuario.Senha))) { autentica.Autenticado = true; } else { autentica.Autenticado = false; } autentica.Senha = null; return(autentica); }
public async Task <IActionResult> Entrar(AutenticaTransfer autenticaTransfer) { AutenticaModel autenticaModel; AutenticaTransfer autentica; try { autenticaModel = new AutenticaModel(httpContext); autentica = await autenticaModel.Autenticar(autenticaTransfer); } catch (Exception ex) { autentica = new AutenticaTransfer(); autentica.Validacao = false; autentica.Erro = true; autentica.IncluirMensagem("Erro em AutenticaController Consulta [" + ex.Message + "]"); } finally { autenticaModel = null; } if (autentica.Erro || !autentica.Validacao || !autentica.Autenticado) { return(View("Index", autentica)); } else { ViewData["Usuario"] = UsuarioNome; return(RedirectToAction("Lista")); } }
public AutenticaTransfer(AutenticaTransfer transfer) : base(transfer) { if (transfer != null) { this.Apelido = transfer.Apelido; this.Senha = transfer.Senha; this.Token = transfer.Token; this.Autenticado = transfer.Autenticado; } }
public async Task <AutenticaTransfer> Autenticar(AutenticaTransfer pAutentica) { HttpResponseMessage resposta = null; AutenticaTransfer autentica = null; string mensagemRetono = null; try { resposta = await httpClient.PostAsync($"{nomeServico}", new StringContent(JsonConvert.SerializeObject(pAutentica), Encoding.UTF8, "application/json" )); if (resposta.IsSuccessStatusCode) { autentica = JsonConvert.DeserializeObject <AutenticaTransfer>(resposta.Content.ReadAsStringAsync().Result); } else if (resposta.StatusCode == HttpStatusCode.BadRequest) { autentica = JsonConvert.DeserializeObject <AutenticaTransfer>(resposta.Content.ReadAsStringAsync().Result); } else if (resposta.StatusCode == HttpStatusCode.Unauthorized) { autentica = JsonConvert.DeserializeObject <AutenticaTransfer>(resposta.Content.ReadAsStringAsync().Result); } else { mensagemRetono = $"Não foi possível acessar o serviço {nomeServico} Autenticar"; } if (!string.IsNullOrEmpty(mensagemRetono)) { autentica = new AutenticaTransfer(); autentica.Autenticado = false; autentica.Validacao = false; autentica.Erro = true; autentica.IncluirMensagem(mensagemRetono); } } catch (Exception ex) { autentica = new AutenticaTransfer(); autentica.Autenticado = false; autentica.Validacao = false; autentica.Erro = true; autentica.IncluirMensagem("Erro em AutenticaService Autenticar [" + ex.Message + "]"); } finally { resposta = null; } return(autentica); }
public AutenticaTransfer Autenticar(AutenticaTransfer autenticaTransfer) { AutenticaData autenticaData; AutenticaTransfer autentica; try { autenticaData = new AutenticaData(_contexto); autentica = autenticaData.Autenticar(autenticaTransfer); } catch (Exception ex) { autentica = new AutenticaTransfer(); autentica.Erro = true; autentica.IncluirMensagem("Erro em AutenticaDataModel Autenticar [" + ex.Message + "]"); } finally { autenticaData = null; } return(autentica); }
public async Task <AutenticaTransfer> Autenticar(AutenticaTransfer pAutentica) { AutenticaService autenticaService; AutenticaTransfer autentica; try { autenticaService = new AutenticaService(); autentica = await autenticaService.Autenticar(pAutentica); if (autentica != null) { if ((autentica.Autenticado) && (!string.IsNullOrEmpty(autentica.Token))) { List <Claim> claims = new List <Claim> { new Claim("usuario", autentica.Apelido), new Claim("token", autentica.Token) }; ClaimsIdentity claimsIdentity = new ClaimsIdentity(claims, cookieRcLog); ClaimsPrincipal claimsPrincipal = new ClaimsPrincipal(claimsIdentity); await httpContext.HttpContext.Authentication.SignInAsync(cookieRcLog, claimsPrincipal); } } } catch (Exception ex) { autentica = new AutenticaTransfer(); autentica.Validacao = false; autentica.Erro = true; autentica.IncluirMensagem("Erro em AutenticaModel Autenticar [" + ex.Message + "]"); } finally { autenticaService = null; } return(autentica); }
public IActionResult Autenticar(AutenticaTransfer autenticaTransfer) { AutenticaModel autenticaModel = null; AutenticaTransfer autentica = null; try { autenticaModel = new AutenticaModel(); autentica = autenticaModel.Autenticar(autenticaTransfer); if (!autentica.Erro) { if (autentica.Autenticado) { return(Ok(autentica)); } else { return(Unauthorized(autentica)); } } else { return(BadRequest(autentica)); } } catch (Exception ex) { autentica = new AutenticaTransfer(); autentica.Erro = true; autentica.IncluirMensagem("Erro em AutenticaController Autenticar [" + ex.Message + "]"); return(BadRequest(autentica)); } finally { autenticaModel = null; } }
public AutenticaTransfer Autenticar(AutenticaTransfer autenticaTransfer) { AutenticaDataModel autenticaDataModel; AutenticaBusiness autenticaBusiness; AutenticaTransfer autenticado; AutenticaTransfer autenticaValidacao; AutenticaTransfer autenticaRetorno; try { autenticaDataModel = new AutenticaDataModel(); autenticaBusiness = new AutenticaBusiness(); autenticaValidacao = autenticaBusiness.Validar(autenticaTransfer); if (!autenticaValidacao.Erro) { if (autenticaValidacao.Validacao) { //-- Criptografia da senha string apelidoSenha = (autenticaTransfer.Apelido + autenticaTransfer.Senha); string apelidoSenhaCripto = Criptografia.CriptravarSHA512(apelidoSenha); autenticaValidacao.Senha = apelidoSenhaCripto; //------------------------- autenticado = autenticaDataModel.Autenticar(autenticaValidacao); } else { autenticado = new AutenticaTransfer(autenticaValidacao); } } else { autenticado = new AutenticaTransfer(autenticaValidacao); } if (autenticado.Validacao == true) { if (autenticado.Autenticado == true) { var direitos = new [] { new Claim(JwtRegisteredClaimNames.Sub, autenticaTransfer.Apelido), new Claim(JwtRegisteredClaimNames.Jti, Guid.NewGuid().ToString()) }; var chave = new SymmetricSecurityKey(System.Text.Encoding.UTF8.GetBytes("rc-chave-autenticacao")); var credenciais = new SigningCredentials(chave, SecurityAlgorithms.HmacSha256); var jwtSecurityToken = new JwtSecurityToken( issuer: "rc-issuer", audience: "rc-audience", claims: direitos, signingCredentials: credenciais, expires: DateTime.Now.AddMinutes(30) ); string token = new JwtSecurityTokenHandler().WriteToken(jwtSecurityToken); autenticaRetorno = new AutenticaTransfer(autenticado); autenticaRetorno.Senha = null; autenticaRetorno.Token = token; } else //-- não autenticado { autenticaRetorno = new AutenticaTransfer(autenticado); autenticaRetorno.Token = null; autenticaRetorno.Senha = null; autenticaRetorno.IncluirMensagem("Usuário e/ou senha informado(s) inválido(s)"); } } else //-- inválido { autenticaRetorno = new AutenticaTransfer(autenticado); autenticaRetorno.Senha = null; } } catch (Exception ex) { autenticaRetorno = new AutenticaTransfer(); autenticaRetorno.Erro = true; autenticaRetorno.IncluirMensagem("Erro em AutenticaModel Autenticar [" + ex.Message + "]"); } finally { autenticaDataModel = null; autenticaBusiness = null; } return(autenticaRetorno); }
public AutenticaTransfer Validar(AutenticaTransfer autenticaTransfer) { AutenticaTransfer autenticaValidacao; try { autenticaValidacao = new AutenticaTransfer(autenticaTransfer); //-- Apelido (Nome de usuário) if (string.IsNullOrEmpty(autenticaValidacao.Apelido)) { autenticaValidacao.IncluirMensagem("Necessário informar o Nome de Usuário"); } else if ((autenticaValidacao.Apelido.Length < 3) || (autenticaValidacao.Apelido.Length > 20)) { autenticaValidacao.IncluirMensagem("Nome de Usuário deve ter entre 3 e 20 caracteres"); } else if (!Validacao.ValidarCharAaN(autenticaValidacao.Apelido)) { autenticaValidacao.IncluirMensagem("Nome de Usuário possui caracteres inválidos"); autenticaValidacao.IncluirMensagem("Caracteres válidos: letras e números"); } //-- Senha if (string.IsNullOrEmpty(autenticaValidacao.Senha)) { autenticaValidacao.IncluirMensagem("Necessário informar a Senha"); } else if ((autenticaValidacao.Senha.Length < 5) || (autenticaValidacao.Senha.Length > 20)) { autenticaValidacao.IncluirMensagem("Senha deve ter entre 5 e 20 caracteres"); } else if (!Validacao.ValidarCharAaBEN(autenticaValidacao.Senha)) { autenticaValidacao.IncluirMensagem("Senha possui caracteres inválidos"); autenticaValidacao.IncluirMensagem("Caracteres válidos: letras, números, espaço em branco e especiais"); } else if (!Validacao.ValidarBrancoIniFim(autenticaValidacao.Senha)) { autenticaValidacao.IncluirMensagem("Senha não deve começar ou terminar com espaço em branco"); } autenticaValidacao.Validacao = true; if (autenticaValidacao.Mensagens != null) { if (autenticaValidacao.Mensagens.Count > 0) { autenticaValidacao.Validacao = false; } } } catch (Exception ex) { autenticaValidacao = new AutenticaTransfer(); autenticaValidacao.IncluirMensagem("Erro em AutenticaBusiness Validar [" + ex.Message + "]"); autenticaValidacao.Erro = true; } return(autenticaValidacao); }