我在名为Action methods
的控制器中跟随Default1
。
[HttpPost]
[ValidateAntiForgeryToken]
public ActionResult testing()
{
return View();
}
public ActionResult testing1()
{
return View();
}
他们对应的Views
是:
@{
ViewBag.Title = "testing1";
}
<h2>testing1</h2>
<form action="/Default1/testing" method="post">
@Html.AntiForgeryToken()
<input type="submit" value="submit"/>
</form>
@{
ViewBag.Title = "testing";
}
<h2>testing</h2>
<h1>successfully validated cookie</h1>
首先,我访问设置/Default1/testing1
Cookie的HttpOnly
。对此请求的响应具有隐藏字段,该字段具有令牌。这是隐藏的输入字段。
<input name="__RequestVerificationToken" type="hidden" value="qgahCspc_DQBSQTkFR5_NmPDGygciZPNxt7BmqZE9NpmVzrbbo1N43T3RDjJvrMUmsq4MT5vUqvvQF4SCrSQXnQpKB9THGNA5hVcVu6exIQ1">
以下是response header
的屏幕截图,可以在红色圆圈中看到Http cookie。
我认为首先设置了HttpOnly
,并且在帖子请求value from hidden field
&amp;如果两者相等,则比较value of HttpOnly Cookie
,然后我们被认为是有效的。但是可以看出这两个值都不同。这个机制正在运作。问题是怎么样的?这些值中的一个是加密的,在比较之前解密。