ASP.NET Core 8.0 Identity API端点:为何未启用防伪验证?
为ASP.NET Core 8.0 Identity API端点启用防伪令牌验证
步骤1:配置防伪服务
在Program.cs中注册并配置防伪服务,可根据业务需求自定义令牌的存储与传递规则:
builder.Services.AddAntiforgery(options => { // 指定前端传递令牌的请求头名称 options.HeaderName = "X-XSRF-TOKEN"; // 配置存储令牌的Cookie属性 options.Cookie.Name = "XSRF-TOKEN"; options.Cookie.SameSite = SameSiteMode.Strict; options.Cookie.HttpOnly = false; // 允许前端读取Cookie中的令牌值 });
步骤2:为Identity API端点添加验证
在映射Identity API端点时,调用RequireAntiforgery()方法,为所有Identity端点启用防伪验证:
app.MapIdentityApi<IdentityUser>() .RequireAntiforgery();
如果需要对特定Identity端点分组配置,可先创建端点组再统一启用验证:
var identityApiGroup = app.MapGroup("/api/identity").MapIdentityApi<IdentityUser>(); // 为整个组内的所有端点启用防伪验证 identityApiGroup.RequireAntiforgery();
前端请求说明
前端发起请求时,需先从Cookie中读取XSRF-TOKEN的值,再在请求头中携带对应的X-XSRF-TOKEN(需与服务端配置的HeaderName一致),才能通过服务端的防伪验证。
内容的提问来源于stack exchange,提问作者jandos
相关产品推荐
相关产品推荐

