Razor Page 处理Ajax Post 400问题

为了防止CSRF攻击,新版本的框架加强做了相关处理

PageModel上加入[ValidateAntiForgeryToken]

    [ValidateAntiForgeryToken]
    public class LoginModel : PageModel

Html里生成token

        <el-form style="max-width:600px; margin:20px auto;"  method="post">
            @Html.AntiForgeryToken()

全局设置Ajax提交token

    $.ajaxSetup({
        beforeSend: function (xhr) {
             xhr.setRequestHeader("RequestVerificationToken", $('input:hidden[name="__RequestVerificationToken"]').val());
        }
    })

禁用上述设置

(有时候这种安全性是不必须的,比如不是在页面里发起请求,需要采用其它安全机制)


//在     public void ConfigureServices(IServiceCollection services) 方法里:
            services.AddMvc()
                .AddRazorPagesOptions(o => { o.Conventions.ConfigureFilter(new IgnoreAntiforgeryTokenAttribute()); })
                .InitializeTagHelper<FormTagHelper>((helper, context) => helper.Antiforgery = false)
                .SetCompatibilityVersion(CompatibilityVersion.Version_2_2);

参照:https://www.cnblogs.com/tdfblog/p/disable-antiforgery-token-validation-in-asp-net-core-razor-page.html

转载于:https://my.oschina.net/u/4006447/blog/3075423

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值