【问题标题】:MVC Validate Antiforgery Token failedMVC 验证防伪令牌失败
【发布时间】:2014-01-23 21:56:11
【问题描述】:
在 IE 中打开了我的应用程序。
创建了一个虚拟 HTML 文件并将生成的隐藏字段“__RequestVerificationToken”复制到虚拟页面。在提交此 html 文件的表单时,我正在调用我的服务。当我在 IE 的另一个选项卡中打开此虚拟页面并提交时。我看到成功可以提交数据了。
ValidateAntiforgey Token 在这种情况下失败。
任何人都可以指导如何解决此类问题。
【问题讨论】:
标签:
model-view-controller
antiforgerytoken
【解决方案1】:
我的问题得到了答案
Validate Antiforgery Token 将 cookie 值与 _requestVerificationToken 隐藏值进行比较。因此,当在新选项卡中打开具有 _requestVerificationToken 隐藏字段(从应用程序复制)值的 html 时,在提交此页面时,它会通过 ValidateAntiforgery 验证,因为两个选项卡的 cookie 值相同。
【解决方案2】:
您介意发布您在其中进行验证的代码吗?可能是这样的:
[ValidateAntiForgeryToken(Salt="someArbitraryString")]
public ViewResult SubmitUpdate()
{
// ... etc
}
谢谢!