Exemplo n.º 1
0
        /// <summary>
        /// Policy injection for all endpoints.
        /// </summary>
        /// <param name="context"></param>
        public override void OnActionExecuting(ActionExecutingContext context)
        {
            RetrieveParameters(context.HttpContext.Request.Headers, out var accessToken);
            SetCulture(Thread.CurrentThread);

            contextManager.BeginTransaction();

            var result = ValidateRequest(context.Controller as IBaseController, accessToken).Result;

            if (ProceedWithExecution(result.isValid, authenticationLevel, HasAuthenticateAttribute(context.ActionDescriptor as ControllerActionDescriptor)))
            {
                base.OnActionExecuting(context);
                contextManager.Commit();
            }
            else
            {
                context.Result = ControllerHelper.CreateErrorResponse(HttpStatusCode.Unauthorized, result.errPhrase);
            }
        }