model-view-controller - ASP.NET mvc如何全局设置 ValidateAntiForgeryToken

  显示原文与译文双语对照的内容

安全开始。

MVC最佳实践reccomend将 [ValidateAntiForgeryToken] 属性添加到每个 [HttpPost] 操作。

如何在应用程序的一个唯一点实施这里规则?

时间: 原作者:

下面的类允许使用FilterProvider进行这里操作


public IEnumerable<Filter> GetFilters(ControllerContext controllerContext, ActionDescriptor actionDescriptor)


{


 List<Filter> result = new List<Filter>();



 string incomingVerb = controllerContext.HttpContext.Request.HttpMethod;



 if (String.Equals(incomingVerb,"POST", StringComparison.OrdinalIgnoreCase))


 {


 result.Add(new Filter(new ValidateAntiForgeryTokenAttribute(), FilterScope.Global, null));


 }



 return result;


}



若要使用上述类,请将它的添加到 global.asx file: 中的RegisterGlobalFilters 方法中


... 


FilterProviders.Providers.Add(new AntiForgeryTokenFilterProvider ());


..



这样,每个 [HttpPost] 将检查 Html.AntiForgeryToken() 是否在视图中。

原作者:
...