public override void OnAuthorization(HttpActionContext filterContext) { if (!Ativo) { return; } var servicoAutenticacao = new ServiceAutenticacao(); var token = servicoAutenticacao.ObterTokenCabecalho(filterContext.Request); if (servicoAutenticacao.Autenticar(token) != null) { var principal = servicoAutenticacao.CriarIdentidadePrincipal(token); if (Autorizar(token, principal)) { filterContext.RequestContext.Principal = principal; Thread.CurrentPrincipal = principal; } else { AcessoNaoAutorizado(filterContext); } } else { AcessoNaoAutorizado(filterContext); } }
public IHttpActionResult Autenticar(AutenticacaoDto login) { var usuario = serviceAutenticacao.Autenticar(login); if (usuario == null) { return(BadRequest("Usuário ou senha incorretos.")); } var response = Request.CreateResponse(HttpStatusCode.OK); response.Headers.Add( "Authorization", String.Format("Bearer {0}", serviceAutenticacao.GerarToken(usuario).GerarJwt())); return(new ResponseMessageResult(response)); }