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

Ada*_*dam 6 asp.net-mvc antiforgerytoken asp.net-core-2.0

我试图避免“ 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());
    } );
Run Code Online (Sandbox Code Playgroud)

但是我仍然遇到这个例外。

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

我有什么想念的吗?

Luc*_*ler 7

IgnoreAntiforgeryToken属性(订单必须 > 1000)添加到 razor 页面模型:

例如:

namespace CWACpch.Pages
{
    [IgnoreAntiforgeryToken(Order = 2000)]
    public class CreateOrderModel : PageModel
    {
Run Code Online (Sandbox Code Playgroud)


小智 1

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

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

如果您尚未按照上述系统配置系统,则系统将不会验证防伪令牌,并且不会对您的情况造成问题