c# - 全局应用的 IgnoreAntiForgeryTokenAttribute 不会禁用 ValidateAntiForgeryToken
问题描述
我有一个具有这些属性的端点:
[HttpPost]
[ValidateAntiForgeryToken]
[Route("[controller]/[action]")]
当我IgnoreAntiforgeryTokenAttribute
在全球申请时
.AddMvc(opts =>
{
opts.Filters.Add(typeof(CustomExceptionFilter));
opts.Filters.Add(new IgnoreAntiforgeryTokenAttribute());
// or
opts.Filters.Add(typeof(IgnoreAntiforgeryTokenAttribute));
})
它没有禁用 that [ValidateAntiForgeryToken]
,但是当我这样做时:
[HttpPost]
[ValidateAntiForgeryToken]
[IgnoreAntiforgeryToken]
[Route("[controller]/[action]")]
然后它被禁用了,为什么?
解决方案
尝试在列表顶部插入过滤器,使其优先于现有过滤器,例如AutoValidateAntiforgeryTokenAttribute
:
opts.Filters.Insert(0, new IgnoreAntiforgeryTokenAttribute());
推荐阅读
- mysql - 使用搜索查询模型并将其 id 传递给另一个模型的最佳方法
- reactjs - 在“连接(组件)”GatsbyJs Redux 的上下文中找不到“商店”
- visual-studio-code - 为什么我的 Sublime Text3 和 VS Code 之间的 80 字符标尺如此不同?
- angular - 在我的组件中过滤“rxjs”Observable 并渲染过滤后的对象
- java - Spring AOP - 仅当从 lambda 调用 joinPoint.proceed 时才应用于方法的切入点
- python - Lambda 给我一个“KeyError”
- elasticsearch - Elasticsearch:升级到 7.9.3 后无法创建索引(mapper_parsing_exception)
- awk - AWK/sed - 在低于特定值的数字之前在文本文件中写入文本
- opengl-es-2.0 - 有什么办法可以降低 CPU 的使用率,或者让 CPU 工作平衡,从而提高图形程序的性能?
- spring - 在 Spring Boot 中运行调度程序会在 Spring Boot 应用程序上下文之外生成一个进程