Fre*_*red 2 razor asp.net-core asp.net-core-2.2
我遇到了一个我不太明白的问题。
使用 razor 页面的 asp.net core 2.2.1 时,我必须手动生成防伪令牌,但所有文档似乎都声称对于 razor 页面来说这不是必需的。
关于我在这里做错了什么有什么见解吗?
如果您从下面的表单中删除@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>
Run Code Online (Sandbox Code Playgroud)
小智 5
当您使用 ASP.NET Core Razor 页面时,您绝对不需要使用@Html.AntiForgeryToken()表单元素中的代码来生成 AntiForgeryToken。当您提交表单时,会自动生成并提交令牌。
您可以通过检查浏览器的开发工具部分来验证这个想法。您可以检查标题,您将看到表单数据“_RequestVerificationToken”,如此屏幕截图所示。
但是,请注意,您的 Ajax 请求是不同的。例如,如果您使用 jQuery Ajax 方法发布到任何 Razor 页面的 Post 处理程序,那么您将需要显式生成令牌并随请求一起传递标头。
| 归档时间: |
|
| 查看次数: |
5978 次 |
| 最近记录: |