Why is my ASP.NET Web API ActionFilterAttribute OnActionExecuting not firing?

前端 未结 6 1384
没有蜡笔的小新
没有蜡笔的小新 2020-12-08 01:47

I\'m trying to implement what\'s seen here: http://www.piotrwalat.net/nhibernate-session-management-in-asp-net-web-api/ but I\'m having an issue with my NhSessionManag

6条回答
  •  清歌不尽
    2020-12-08 02:21

    Here is the complete Implementation:

    public class AllowCrossSiteJsonAttribute : System.Web.Mvc.ActionFilterAttribute
    {
        public override void OnActionExecuted(System.Web.Mvc.ActionExecutedContext filterContext)
        {
            if (filterContext.HttpContext != null && filterContext.HttpContext.Response != null && filterContext.HttpContext.Request != null && filterContext.HttpContext.Request.UrlReferrer != null)
            {
                var allowedCrossDomains = TypeSafeConfigurationManager.GetValueString("allowedCrossDomains", "none");
                var allowedHosts = allowedCrossDomains.Split(',');
    
                var requestHost =  filterContext.HttpContext.Request.UrlReferrer.GetLeftPart(UriPartial.Authority);
                if (allowedHosts.Contains(requestHost.ToLower()))
                {
                    filterContext.HttpContext.Response.Headers.Add("Access-Control-Allow-Origin", requestHost);
                }
            }
    
            base.OnActionExecuted(filterContext);
        }
    }
    public class AllowCrossSiteJsonForWebApiAttribute : ActionFilterAttribute
    {
        public override void OnActionExecuted(HttpActionExecutedContext actionExecutedContext)
        {
            if (actionExecutedContext.Response != null && actionExecutedContext.Request != null &&
                actionExecutedContext.Request.Headers.Referrer != null)
            {
                var allowedCrossDomains = TypeSafeConfigurationManager.GetValueString("allowedCrossDomains", "none");
                var allowedHosts = allowedCrossDomains.Split(',').ToList();
    
                var requestHost = actionExecutedContext.Request.Headers.Referrer.GetLeftPart(UriPartial.Authority);
    
                if (allowedHosts.Contains(requestHost.ToLower()))
                {
                    actionExecutedContext.Response.Headers.Add("Access-Control-Allow-Origin", requestHost);
                }
    
                base.OnActionExecuted(actionExecutedContext);
            }
        }
    }
    

提交回复
热议问题