asp.net mvc与asp.net core Ajax删除操作delete中带ValidateAntiForgeryToken实例

ValidateAntiForgeryToken ajax

[ValidateAntiForgeryToken]

为防止CSRF,asp.net core会在form中自动注入一个隐藏域防止攻击

自动加入:

<form asp-action="create">

</form>

或者使用beginform自动加入隐藏域

@using (Html.BeginForm("ChangePassword", "Manage")) { ... }

或手动加入:

<form method="post" action="create">

@Html.AntiForgeryToken()

</form>

隐藏域代码大致如下:

<input name="__RequestVerificationToken" type="hidden" value="CfDJ8NrAkS ... s2-m9Yw">

在asp.net或asp.net core mvc中,对于删除操作,微软加了token,这样的好处是防止跨站攻击,但如果用平常的ajax删除操作执行时会返回500错误,因此需要加入token进行删除,核心代码实现如下

以下是两种方法实现均可,url根据自己情况填写:

第一种:将token加到form里和数据一起提交

第二种方法加到headers里,在头标识中加入:url可根据自己情况修改

推荐使用此方法

微软官方参考:https://github.com/aspnet/AspNetCore.Docs/blob/master/aspnetcore/security/anti-request-forgery/sample/MvcSample/Views/Home/Ajax.cshtml

posted @ 2020-06-09 10:10  就一个  阅读(419)  评论(0编辑  收藏  举报