Cookies 禁用.AspNetCore.Antiforgery Cookie

Cookies 禁用.AspNetCore.Antiforgery Cookie,cookies,.net-core,Cookies,.net Core,有没有办法阻止在Asp.Net Core 2中创建.AspNetCore.AntiforgeryCookie 据我所知,services.addmvc在内部调用AddAntiforgery,我似乎找不到任何方法来阻止它 这之所以重要,是因为我无法在用户同意之前设置任何cookie,并且默认设置了.AspNetCore.Antiforgery cookie。好的,我找到了解决方案。 如果将此行添加到Startup.cs中的ConfigureServices,将永远不会创建cookie: servi

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

据我所知,services.addmvc在内部调用AddAntiforgery,我似乎找不到任何方法来阻止它

这之所以重要,是因为我无法在用户同意之前设置任何cookie,并且默认设置了.AspNetCore.Antiforgery cookie。

好的,我找到了解决方案。 如果将此行添加到Startup.cs中的ConfigureServices,将永远不会创建cookie:

services.AddAntiforgery(options => { options.Cookie.Expiration = TimeSpan.Zero;});

有多个选项可用于禁用从中自动生成反伪造令牌和cookie:

使用
asp antiforgery
属性显式禁用antiforgery令牌(对我来说很有用):


...
表单元素通过使用标记帮助器
从标记帮助器中选择!选择退出符号


...
从视图中删除
FormTagHelper
。通过向Razor视图添加以下指令,可以从视图中删除
FormTagHelper

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

将此添加到Startup.cs对我很有用:

services.AddMvc().AddRazorPagesOptions(o=>
{
    o.Conventions.ConfigureFilter(new IgnoreAntiforgeryTokenAttribute());
});
我从这里得到的:


我在一个内部网中需要它,其中某个表单需要保持打开状态,直到一个长期的实际任务完成。

这太可怕了,你必须添加一个东西来指定你不想以一种可怕的方式使用它。当我在编程时,我会想:“肯·汤普森会做什么?”这绝对不是他会做的。Tyvm无论如何,这是一个帮助解决方案。无论如何,这不是一个很好的解决方案,因为服务器仍然向浏览器发送响应cookie,浏览器随后不会存储响应cookie,因为cookie已经过期。