在ASP.NET MVC中,可以使用防伪请求令牌(AntiForgeryToken)来防止跨站请求伪造(CSRF)攻击。下面是一个包含代码示例的解决方法:
@Html.AntiForgeryToken()
方法来生成防伪请求令牌。例如:@using (Html.BeginForm("Action", "Controller"))
{
@Html.AntiForgeryToken()
// 表单内容
}
ValidateAntiForgeryToken
属性来验证防伪请求令牌的有效性。例如:[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult Action(FormViewModel model)
{
// 处理表单提交
return View();
}
public class CustomAntiForgeryTokenAttribute : FilterAttribute, IAuthorizationFilter
{
public void OnAuthorization(AuthorizationContext filterContext)
{
// 自定义令牌生成和验证逻辑
}
}
然后,在全局过滤器配置中注册自定义防伪请求令牌过滤器:
public class FilterConfig
{
public static void RegisterGlobalFilters(GlobalFilterCollection filters)
{
filters.Add(new CustomAntiForgeryTokenAttribute());
}
}
这样,每个请求都会经过自定义防伪请求令牌的验证逻辑。
以上是在ASP.NET MVC中使用防伪请求令牌来防止跨站请求伪造攻击的解决方法,你可以根据实际需求进行相应的配置和调整。