禁用.AspNetCore.Antiforgery Cookie

时间:2018-05-18 12:31:13

标签: cookies .net-core

有没有办法阻止在Asp.Net Core 2中创建 .AspNetCore.Antiforgery Cookie?

从我的理解,services.addmvc在内部调用AddAntiforgery,我似乎无法找到任何方法来阻止它?

这很重要的原因是因为我无法在用户同意之前设置任何cookie,并且默认情况下会设置.AspNetCore.Antiforgery cookie。

3 个答案:

答案 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

我从这里得到的:https://www.talkingdotnet.com/disable-antiforgery-token-validation-globally-asp-net-core-razor-pages/

我需要在一个 Intranet 中使用它,在该 Intranet 中,某个表单需要保持打开状态,直到完成一个漫长的现实世界任务。