有没有办法阻止在Asp.Net Core 2中创建 .AspNetCore.Antiforgery Cookie?
从我的理解,services.addmvc在内部调用AddAntiforgery,我似乎无法找到任何方法来阻止它?
这很重要的原因是因为我无法在用户同意之前设置任何cookie,并且默认情况下会设置.AspNetCore.Antiforgery cookie。
答案 0 :(得分:3)
好的,我找到了解决方案。 如果将此行添加到Startup.cs中的ConfigureServices,则永远不会创建cookie: services.AddAntiforgery(options => {options.Cookie.Expiration = TimeSpan.Zero;});
答案 1 :(得分:0)
有多种选项可以禁用从 docs 自动生成防伪令牌和 cookie:
使用 asp-antiforgery
属性显式禁用防伪标记(对我来说效果很好):
<form method="post" asp-antiforgery="false">
...
</form>
使用标签助手 ! opt-out symbol
选择退出表单元素:
<!form method="post">
...
</!form>
从视图中移除 FormTagHelper
。通过向 Razor 视图添加以下指令,可以从视图中删除 FormTagHelper
:
@removeTagHelper Microsoft.AspNetCore.Mvc.TagHelpers.FormTagHelper, Microsoft.AspNetCore.Mvc.TagHelpers
答案 2 :(得分:0)
将此添加到 Startup.cs 对我有用:
never
我需要在一个 Intranet 中使用它,在该 Intranet 中,某个表单需要保持打开状态,直到完成一个漫长的现实世界任务。