AccessOriginalAttribute.cs 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. using System.Web;
  2. using System.Web.Mvc;
  3. namespace WeApp
  4. {
  5. public class AccessOriginalAttribute : ActionFilterAttribute, IExceptionFilter
  6. {
  7. public void InternalExecuteAccessController(HttpResponseBase response, HttpRequestBase request)
  8. {
  9. var header = response.Headers;
  10. var requestHeader = request.Headers;
  11. header.Set("Access-Control-Allow-Origin", requestHeader["Origin"] ?? "http://" + requestHeader["Host"]);
  12. header.Set("Access-Control-Allow-Methods", "POST, GET, OPTIONS, DELETE");
  13. header.Set("Access-Control-Max-Age", "3600");
  14. header.Set("Access-Control-Allow-Headers", "*");
  15. header.Set("Access-Control-Allow-Credentials", "true");
  16. header.Set("X-Frame-Options", "allow-from *");
  17. }
  18. //public override void OnActionExecuting(ActionExecutingContext filterContext)
  19. //{
  20. // base.OnActionExecuting(filterContext);
  21. //}
  22. public override void OnActionExecuted(ActionExecutedContext filterContext)
  23. {
  24. InternalExecuteAccessController(filterContext.HttpContext.Response, filterContext.HttpContext.Request);
  25. base.OnActionExecuted(filterContext);
  26. }
  27. //public override void OnResultExecuting(ResultExecutingContext filterContext)
  28. //{
  29. // base.OnResultExecuting(filterContext);
  30. //}
  31. //public override void OnResultExecuted(ResultExecutedContext filterContext)
  32. //{
  33. // base.OnResultExecuted(filterContext);
  34. //}
  35. public void OnException(ExceptionContext filterContext)
  36. {
  37. filterContext.Result = new JsonResult()
  38. {
  39. Data = new { Succeed = 0, filterContext.Exception.Message },
  40. JsonRequestBehavior = JsonRequestBehavior.AllowGet
  41. };
  42. filterContext.ExceptionHandled = true;
  43. }
  44. }
  45. }