如何禁用ASP.NET MVC Core 2中的防伪令牌检查

问题描述 投票:3回答:2

我试图避免“AntiForgery”检查,因为它总是从第三方服务器托管时失败。我正在使用ASP.NET Core 2.0 MVC应用程序。

我在ConfigureServices函数中添加了这个选项:

services
    .AddMvc()
    .AddRazorPagesOptions( options =>
    {
        options.Conventions.AuthorizeFolder("/Account/Manage");
        options.Conventions.AuthorizePage("/Account/Logout");
        options.Conventions.ConfigureFilter(new IgnoreAntiforgeryTokenAttribute());
    } );

但我仍然得到这个例外。

System.InvalidOperationException:无法解密防伪令牌。 System.Security.Cryptography.CryptographicException:密钥环中找不到密钥{6fb328e7-4808-4b5d-b7dc-870d126e5ca4}。

我错过了什么吗?

asp.net-mvc asp.net-core-2.0 antiforgerytoken
2个回答
1
投票

根据我的理解,你不必禁用任何东西。默认情况下,如果使用asp net tag helper创建表单元素,它将放置防伪标记

您可以通过在操作方法中使用[ValidateAntiforgeryToken]注释来验证反伪造令牌,或者将ValidateAntiforgeryToken全局定义配置,这将使系统尝试验证防伪令牌

如果您没有按照提及配置系统,系统将不会验证防伪令牌,并且对您的情况不会有问题


1
投票

IgnoreAntiforgeryToken属性(Order必须> 1000)添加到剃刀页面模型:

例如:

namespace CWACpch.Pages
{
    [IgnoreAntiforgeryToken(Order = 2000)]
    public class CreateOrderModel : PageModel
    {
© www.soinside.com 2019 - 2024. All rights reserved.