我的环境在
之下ASP.NET CORE 2.0
这是测试功能
[HttpPost]
[AllowAnonymous]
[ValidateAntiForgeryToken]
public ActionResult Test()
{
return RedirectToAction("Home");
}
我使用PostMan发送Post Data http://localhost:00000/test/test
总是有400个不良请求......为什么?
[错误讯息]
headers:Headers
ok:false
status:400
statusText:"Bad Request"
type:2
url:"http://localhost:57230/account/register"
_body:""
[更新] 我找到了解决方案..但是有新的错误XD
headers:Headers
ok:false
status:500
statusText:"Internal Server Error"
type:2
url:"http://localhost:57227/account/register"
_body:
[更新] 解决...
答案 0 :(得分:0)
我遇到类似的情况,表格POST被路由到正确的控制器,但随后控制器返回一个空页面(400错误)。控制器甚至没有执行其中的任何代码。
问题似乎如下:
如果您未在{CSMML中的@Html.AntiForgeryToken()
标记后面放置<form>
,则使用[AutoValidateAntiforgeryToken]
或[ValidateAntiForgeryToken]
控制器将返回没有输出的空白页面或控制台警告。
因此,通过HTML表单阻止跨站点或跨会话(?)攻击似乎正在按预期工作。