我试图避免“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 tag helper创建表单元素,它将放置防伪标记
您可以通过在操作方法中使用[ValidateAntiforgeryToken]注释来验证反伪造令牌,或者将ValidateAntiforgeryToken全局定义配置,这将使系统尝试验证防伪令牌
如果您没有按照提及配置系统,系统将不会验证防伪令牌,并且对您的情况不会有问题
将IgnoreAntiforgeryToken
属性(Order必须> 1000)添加到剃刀页面模型:
例如:
namespace CWACpch.Pages
{
[IgnoreAntiforgeryToken(Order = 2000)]
public class CreateOrderModel : PageModel
{