Exemple #1
0
        public void RealizaLoginAdmDefault()
        {
            UsuarioService ServicoUsuario = new UsuarioService(new DefRepositorioUsuario(this.DbContext));

            Usuario             AdmDefault   = PadraoUsuario.Admin;
            LoginUsuarioRequest RequestLogin = new LoginUsuarioRequest()
            {
                Login = AdmDefault.Login,
                Senha = "D26m04a03"
            };
            LoginUsuarioRespost retorno = ServicoUsuario.AutenticaUsuario(RequestLogin);

            SessaoUsuario SessaoAtiva = (from sessao in DbContext.SessaoUsuario
                                         where sessao.Ativo == true && sessao.UsuarioID == AdmDefault.Id
                                         select new SessaoUsuario()
            {
                Id = sessao.Id,
                Ativo = sessao.Ativo,
                InicioSessao = sessao.DataInicioSessao.DateTime,
                UsuarioId = sessao.UsuarioID
            }).FirstOrDefault();

            Assert.False(SessaoAtiva == null);

            retorno = ServicoUsuario.AutenticaUsuario(RequestLogin);

            List <MapSessaoUsuario> SessoesAtivas = (from sessao in DbContext.SessaoUsuario
                                                     where sessao.Ativo == true && sessao.UsuarioID == AdmDefault.Id
                                                     select sessao).ToList();

            Assert.False(SessoesAtivas == null);
            Assert.Single(SessoesAtivas);
        }
Exemple #2
0
 public IActionResult Login(LoginUsuarioRequest LoginData)
 {
     try
     {
         LoginUsuarioRespost resultLogin = _Service.AutenticaUsuario(LoginData);
         return(new JsonResult(resultLogin));
     }
     catch (Exception Erro)
     {
         ServicoLog.AddLogAsync(Erro.Message);
     }
     return(new JsonResult(MensagensEntidades.ErroInesperado));
 }
Exemple #3
0
        public LoginUsuarioRespost AutenticaUsuario(LoginUsuarioRequest Usuario)
        {
            LoginUsuarioRespost ret = new LoginUsuarioRespost()
            {
                SessaoId = Guid.Empty.ToString()
            };

            try
            {
                MapUsuario result = (from usuario in DBContext.Usuarios
                                     where usuario.Ativo == true &&
                                     Usuario.Login.Equals(usuario.Login) &&
                                     usuario.Senha.ToUpper().Equals(Util.HashSHA256(Usuario.Senha))
                                     select usuario).FirstOrDefault();
                if (result == null)
                {
                    ret.Menssagem = MensagensEntidades.LoginIncorreto;
                }
                else
                {
                    MapSessaoUsuario Sessao = new MapSessaoUsuario()
                    {
                        DataInicioSessao = DateTime.Now,
                        Ativo            = true,
                        UsuarioID        = result.Id,
                        Id = Guid.NewGuid()
                    };

                    this.InativaSessoesUsuario(result.Id);

                    DBContext.SessaoUsuario.Add(Sessao);
                    DBContext.SaveChanges();

                    ret.SessaoId = Sessao.Id.ToString();
                }
            }
            catch (Exception Erro)
            {
                ret.ErrorMessage = MensagensEntidades.ErroInesperado;
                Task.Run(() => { new LogService().AddLog(Erro.Message); });
            }

            return(ret);
        }
Exemple #4
0
        static void Main(string[] args)
        {
            Container container = new Container();

            container.Register <IDB, MSSqlServer>(Lifestyle.Singleton);
            container.Register <IUsuarioRepositorio, UsuarioRepositorio>();

            var conexao = container.GetInstance <IUsuarioRepositorio>();

            LoginUsuarioRequest loginUsuarioRequest = new LoginUsuarioRequest();

            loginUsuarioRequest.Email = "*****@*****.**";
            loginUsuarioRequest.Senha = "123456";

            UsuarioCommandHandler usuarioCommand = new UsuarioCommandHandler(conexao);
            LoginUsuarioResponse  response       = (LoginUsuarioResponse)usuarioCommand.Handler(loginUsuarioRequest);

            Console.ReadKey();
        }
        public IActionResult Post([FromServices] SigningConfigurations signingConfigurations,
                                  [FromServices] TokenConfigurations tokenConfigurations, [FromBody] LoginUsuarioRequest login)
        {
            LoginUsuarioResponse loginResponse = (LoginUsuarioResponse)UsuarioCommand.Handler(login);


            bool credenciaisValidas = (loginResponse != null && loginResponse.Autenticado);

            if (credenciaisValidas)
            {
                ClaimsIdentity identity = new ClaimsIdentity(
                    new GenericIdentity(loginResponse.ID.ToString()),
                    new[] {
                    new Claim(JwtRegisteredClaimNames.UniqueName, loginResponse.Nome),
                    new Claim(JwtRegisteredClaimNames.Email, loginResponse.Email),
                }
                    );

                DateTime dataCriacao   = loginResponse.DataInicio;
                DateTime dataExpiracao = loginResponse.DataExpiracao;

                var handler       = new JwtSecurityTokenHandler();
                var securityToken = handler.CreateToken(new SecurityTokenDescriptor
                {
                    Issuer             = tokenConfigurations.Issuer,
                    Audience           = tokenConfigurations.Audience,
                    SigningCredentials = signingConfigurations.SigningCredentials,
                    Subject            = identity,
                    NotBefore          = dataCriacao,
                    Expires            = dataExpiracao
                });
                var token = handler.WriteToken(securityToken);

                return(Ok
                       (
                           new
                {
                    authenticated = true,
                    created = dataCriacao.ToString("yyyy-MM-dd HH:mm:ss"),
                    expiration = dataExpiracao.ToString("yyyy-MM-dd HH:mm:ss"),
                    accessToken = token,
                    message = "OK"
                }
                       ));
            }
            else
            {
                return(BadRequest(new
                {
                    autenticacao = false,
                    messagem = "Falha ao autenticar"
                }));
            }
        }
Exemple #6
0
 public LoginUsuarioRespost AutenticaUsuario(LoginUsuarioRequest Request)
 {
     return(_usuarioRepositorio.AutenticaUsuario(Request));
 }