用途:防止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上才可以正常使用。