如何禁用 .NET 8 Web 应用程序的防伪造 cookie?

问题描述 投票:0回答:1

我正在尝试禁用 .NET 8 Blazor Web 应用程序中的所有防伪造 cookie。我在 Program.cs 中添加了这个:

app.MapRazorComponents<App>()
.DisableAntiforgery()
.AddInteractiveServerRenderMode();

然后我删除了 UseAntiforgery() 行:

    app.UseAuthentication();
    app.UseAuthorization();
   //app.UseAntiforgery();

但这不起作用,我仍然看到 cookie 正在被写入:

我还需要做什么?感谢您的任何建议!

c# .net asp.net-core blazor
1个回答
0
投票

如果您想禁用此 Antiforgery cookie,我建议您可以将 AddAntiforgery 方法的 Cookie.Expiration 修改为零。根据文档,您可以发现,blazor模板会自动添加Antiforgery中间件,因此您只需修改cookie过期时间即可,因为该中间件会自动设置cookie。

更多详情,可以参考以下代码:

1.致电防伪服务:

builder.Services.AddAntiforgery(options =>
{     // Set Cookie properties using CookieBuilder properties†.
    
    options.Cookie.Expiration = TimeSpan.Zero;
    
});

2.设置中间件:

app.UseAuthentication();
app.UseAuthorization();
app.UseAntiforgery();
app.UseStaticFiles();


app.MapRazorComponents<App>().DisableAntiforgery().AddInteractiveServerRenderMode();

结果:

© www.soinside.com 2019 - 2024. All rights reserved.