个人技术分享

在这里插入图片描述
在这里插入图片描述
用途:防止CSRF(跨网站请求伪造)。

用法:在View->Form表单中:
aspx:<%:Html.AntiForgeryToken()%>
razor:@Html.AntiForgeryToken()
在Controller->Action动作上:[ValidateAntiForgeryToken]

原理:

1、<%:Html.AntiForgeryToken()%> 或@Html.AntiForgeryToken()
这个方法会生成一个隐藏域:
在这里插入图片描述

并且会将一个以"__RequestVerificationToken“为KEY的COOKIE给控制层。
在这里插入图片描述

2、[ValidateAntiForgeryToken],根据传过来的令牌进行对比,如果相同,则允许访问,如果不同则拒绝访问。

关键:ValidateAntiForgeryToken只针对POST请求。

换句话说,[ValidateAntiForgeryToken]必须和[HttpPost]同时加在一个ACTION上才可以正常使用。