无 Cookie ASP.NET 核心

Cookieless ASP.NET Core

我正在开发 ASP.NET Core 3.1 应用程序。我没有使用任何类型的身份验证、会话 data/logic 和表单元素。我在我的开发者控制台中看到 .AspNetCore.Antiforgery cookie,尽管我没有在我的 Startup class 中调用 services.AddAntiforgery()

我发现 接受了一个非常不满意的答案,因为这个 cookie 仍将发送给客户端(由 hemp 的评论指出)。

所以我的问题是:如何完全删除此 CSFR cookie?

Asp.Net 核心自动将防伪令牌添加到 form.

您需要<form method="post" asp-antiforgery="false">,这将省略防伪标记。

尽管微软的这个文档说了如何防止Cross Site。 关于如何忽略它有很多 material -> https://docs.microsoft.com/en-us/aspnet/core/security/anti-request-forgery?view=aspnetcore-3.1#aspnet-core-antiforgery-configuration

All the appropriate techniques are listed in the docs.

正如 panoskarajohn 所说,

Asp.Net Core adds the anti forgery token automatically to the form.

因为它是一个标签助手。所以你可以避免标签助手停止防伪令牌。您可以使用标签助手‘!’退出符号

<!form  method=”post”>
    …
</!form >

此外,您可以避免整个页面的标签助手。

@removeTagHelper Microsoft.AspNetCore.Mvc.TagHelpers.FormTagHelper,  Microsoft.AspNetCore.Mvc.TagHelpers

勾选这个linkhttp://blog.vivensas.com/cross-site-request-forgery-in-asp-net-core-formtaghelper/#avoidAntiForgeryToken