08 The required antiforgery cookie .AspNetCore.Antiforgery.SHBLLax8hUM is not present问题排查

08 Abp The required antiforgery cookie .AspNetCore.Antiforgery.SHBLLax8hUM is not present问题排查

问题描述

Vue前端提交表单修改数据时,后台API服务报 The required antiforgery cookie .AspNetCore.Antiforgery.SHBLLax8hUM is not present 错误。
该错误由CSRF/XSRF&反伪造系统导致。

问题排查

跟踪请求:
appplication-configuration请求跟踪1
可以看到服务端是有返回AspNetCore.Antiforgery.SHBLLax8hUMcookie的,由于服务端默认设置Cookie的属性为samesite=strict,且我提交的表单的请求是跨域请求,导致Cookie无法正确设置。

解决方法

ConfigureServices 方法中设置一下配置:

            // 设置 ASP.NET.CORE Anti Forgery cookie 可以跨域
            Configure<AntiforgeryOptions>(options =>
            {
                options.Cookie.SameSite = SameSiteMode.None;  // 指示客户端应禁用同一站点限制
                options.Cookie.HttpOnly = true; // 设置该Cookie只能用于HTTP请求,客户端无法访问
                options.Cookie.IsEssential = true;
                options.Cookie.SecurePolicy = CookieSecurePolicy.SameAsRequest;
                options.Cookie.Expiration = TimeSpan.FromDays(3650); // 设置cookie的有效期为10年
            });
posted @ 2023-05-17 11:17  $("#阿飞")  阅读(152)  评论(0编辑  收藏  举报