(최적이 아닌) 솔루션 here을 발견했습니다.
그는 다른 위장 방법을 사용하여 위조 토큰을 추가합니다. 이는 기존의 모든 HtmlHelper 확장에 대해 새로운 메소드가 필요하고 코드가 일관성이 없을 수 있다는 단점이 있습니다.
public static class FormExtensions
{
public static MvcForm BeginDataForm(this HtmlHelper html, string action, string controller)
{
var form = html.BeginForm(action, controller);
html.ViewContext.Writer.Write(html.AntiForgeryToken().ToHtmlString());
return form;
}
}
서버 측에서는 토큰의 유효성을 검사하는 우아한 솔루션을 발견했습니다. 그는 새로운 AuthorizationFilter를 추가하고 모든 게시 방법에서 토큰의 유효성을 검사합니다.
public class GlobalAntiForgeryTokenAttribute : FilterAttribute, IAuthorizationFilter
{
public sub OnAuthorization(filterContext As AuthorizationContext)
{
if (filterContext.HttpContext.Request.HttpMethod.ToUpper() == "POST")
{
AntiForgery.Validate();
}
}
}