我正在尝试禁用 .NET 8 Blazor Web 应用程序中的所有防伪造 cookie。我在 Program.cs 中添加了这个:
app.MapRazorComponents<App>()
.DisableAntiforgery()
.AddInteractiveServerRenderMode();
然后我删除了 UseAntiforgery() 行:
app.UseAuthentication();
app.UseAuthorization();
//app.UseAntiforgery();
但这不起作用,我仍然看到 cookie 正在被写入:
我还需要做什么?感谢您的任何建议!
如果您想禁用此 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();
结果: