Asp.net Mvc AntiForgeryToken全局处理

https://www.cnblogs.com/ElderJames/p/The-Ajax-global-Antiforgery-Token-configuration-in-ASPNET-Core.html

全局获取Forgery Token#

全局(每个页面)获取Forgery Token就是文档中提到的注入Microsoft.AspNetCore.Antiforgery.IAntiforgery并调用GetAndStoreTokens方法,但是由于需要达到全局获取,我需要把这个方法的调用写到布局页,如默认MVC模版的Views/Shared/_Layout.cshtml

@inject Microsoft.AspNetCore.Antiforgery.IAntiforgery Xsrf

@functions{

    public string GetAntiXsrfRequestToken()

    {

        return Xsrf.GetAndStoreTokens(Context).RequestToken;

    }

}


<script>

    var csrfToken = '@GetAntiXsrfRequestToken()';

</script>

Ajax全局配置#

JQuery.ajax里全局设置头部的方法是$.ajaxSetup,按照文档,把所需的头部字段RequestVerificationToken配置上上面获取到的令牌变量csrfToken,即可实现在每个Ajax请求都带有Forgery Token。

(function (window, document, $) {

    $.ajaxSetup({

        headers: {

            'RequestVerificationToken': csrfToken

        }

    });

})(window, document, jQuery);

 

 

 

posted @ 2021-09-24 16:31  ChuckLu  阅读(202)  评论(0编辑  收藏  举报