【发布时间】:2019-06-13 21:13:36
【问题描述】:
我遇到了一个我不太明白的问题。
asp.net core 2.2.1 使用剃须刀页面,我不得不手动生成防伪令牌,但所有文档似乎都声称剃须刀页面不需要。
关于我在这里做错了什么的任何见解?
如果您从下面的表单中删除 @Html.AntiForgeryToken(),则不会添加令牌。如果这是你应该做的,那很好,我已经完成了,但我能找到的每个来源似乎都认为这没有必要。
<form method="post">
@Html.AntiForgeryToken()
<div>Source Type: <input asp-for="filter.SourceType" value="JsonEvent"/></div>
<div>Source Name: <input asp-for="filter.SourceName"/></div>
<input type="submit"/>
</form>
【问题讨论】:
-
我遇到了同样的问题,但我通过忽略防伪令牌
[IgnoreAntiforgeryToken(Order = 1001)]解决了这个问题 -
Order = 1001 有什么用?我做了一些搜索,找不到任何解释它的东西。这似乎是一个优先事项,但对于该属性来说似乎很奇怪。
-
github.com/aspnet/Mvc/issues/7012我已经按照这个问题的建议做了
-
关键是Order参数。内置
[ValidateAntiforgeryToken]的顺序为 1000,因此将[IgnoreAntiforgeryToken]显式设置为大于 1000 的任何值都可以解决问题。
标签: razor asp.net-core asp.net-core-2.2