Пример #1
0
        protected override Task <HttpResponseMessage> SendAsync(HttpRequestMessage request, CancellationToken cancellationToken)
        {
            HttpStatusCode statusCode;
            string         token;

            HttpResponseMessage respuesta = new HttpResponseMessage();

            Models.RespuestaAPI <string> respuestaApi = new Models.RespuestaAPI <string>();

            // determine whether a jwt exists or not
            if (!TryRetrieveToken(request, out token))
            {
                statusCode = HttpStatusCode.Unauthorized;
                return(base.SendAsync(request, cancellationToken));
            }

            try
            {
                // Extract and assign Current Principal and user
                Thread.CurrentPrincipal  = getClaimData(token);
                HttpContext.Current.User = getClaimData(token);

                return(base.SendAsync(request, cancellationToken));
            }
            catch (SecurityTokenValidationException)
            {
                statusCode   = HttpStatusCode.Unauthorized;
                respuestaApi = new RespuestaAPI <string>()
                {
                    respuesta = RespuestaAPI <string> .nombreRespuesta(eRespuestas.Unauthorized), resultado = ""
                };
            }
            catch (Exception)
            {
                statusCode   = HttpStatusCode.InternalServerError;
                respuestaApi = new RespuestaAPI <string>()
                {
                    respuesta = RespuestaAPI <string> .nombreRespuesta(eRespuestas.InternalServerError), resultado = ""
                };
            }

            //Devolvemos algún error en la respuesta
            var jsonString = JsonConvert.SerializeObject(respuestaApi);
            var content    = new StringContent(jsonString, Encoding.UTF8, "application/json");

            respuesta.Content    = content;
            respuesta.StatusCode = statusCode;

            return(Task <HttpResponseMessage> .Factory.StartNew(() => respuesta));
        }
Пример #2
0
        public IHttpActionResult Authenticate(LoginRequest login)
        {
            if (login == null)
            {
                throw new HttpResponseException(HttpStatusCode.BadRequest);
            }


            if (isCredentialValid(login.Username, login.Password))
            {
                var token = TokenGenerator.GenerateTokenJwt(login.Username);
                return(Ok(new RespuestaAPI <string>()
                {
                    respuesta = RespuestaAPI <string> .nombreRespuesta(eRespuestas.OK), resultado = token
                }));
            }
            else
            {
                return(Ok(new RespuestaAPI <string>()
                {
                    respuesta = RespuestaAPI <string> .nombreRespuesta(eRespuestas.Unauthorized), resultado = ""
                }));
            }
        }