asp.net mvc 全局设置JsonRequestBehavior.AllowGet

来源:home1024 分类:Asp.net

今天在开发asp.net mvc进行get时,提示错误:此请求已被阻止,因为当用在 GET 请求中时,会将敏感信息透漏给第三方网站。若要允许 GET 请求,请将 JsonRequestBehavior 设置为 AllowGet.

这个就比较烦了,要在每个get请求方法设置一下允许Get就太low,有没有一劳永逸的办法,当然有啦!

asp.net mvc 全局设置JsonRequestBehavior.AllowGet,代码如下:

    public class JsonRequestBehaviorAttribute : ActionFilterAttribute
    {
        private JsonRequestBehavior Behavior { get; set; }

        public JsonRequestBehaviorAttribute()
        {
            Behavior = JsonRequestBehavior.AllowGet;
        }

        public override void OnResultExecuting(ResultExecutingContext filterContext)
        {
            var result = filterContext.Result as JsonResult;

            if (result != null)
            {
                result.JsonRequestBehavior = Behavior;
            }
        }
    }

然后在Controller加上[JsonRequestBehavior],如下:

    [JsonRequestBehavior]
    public class BaseController : Controller
    {
    }

不过人家微软说了,这样会导致信息泄露,如果只是一两允许Get,就直接设置得了.