我刚刚通过修改默认登录表单使用简单的 ASP.NET MVC 3 示例进行了快速测试。根据这篇文章,隐藏字段__RequestVerificationToken
和 cookie__RequestVerificationToken_Lw__
必须包含与生成的相同的值Html.AntiForgeryToken()
。但是当我在 Fiddle 中得到它们时并不完全相同,顺便说一下,查看 MVC 3 源代码,方法GetAntiForgeryTokenAndSetCookie
似乎没有使用盐值来生成 cookie。MVC 3 有什么变化吗?
忘了说我仍然可以使用普通或 Ajax POST 请求成功登录。
这是来自 Fiddle 的原始日志:
POST http://localhost:51713/Account/LogOn HTTP/1.1
Referer: http://localhost:51713/Account/LogOn
Content-Length: 256
Origin: http://localhost:51713
X-Requested-With: XMLHttpRequest
Content-Type: application/x-www-form-urlencoded
Cookie: __RequestVerificationToken_Lw__=OIRtVqUvNt/LfDGeoVy3W1VhdKN7MwdbUZmRNScz4NqS4uV0I0vQH2MHg77SsVhcinK5SJi9mVcdBUWk2VMiPTk8EMUN2Zq0X4ucK8XQ3/zr6NoiIvVF73Bq8ahbFaY/IrNrWY7mmzvO9j/XVLNN2lNqgCd6I3UGZAw3/nlOmpA=
__RequestVerificationToken=zeDS%2F8MZE%2BLf%2FrRhevwN51J7bOE3GxlGNLQc8HogwFctF7glU1JboHePTTHa5YFe9%2FD2sY7w167q53gqvcwYZG1iZeecdnO4fdg6URdR4RUR%2BjIgk1apkXoxQ2xg48REfv4N5D4SHKU4MAf30Diy0MVyyF9N2Dl7uUGT6LbKHZU%3D&UserName=Tien&Password=tien&RememberMe=false