问题标签 [custom-action-filter]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
37 浏览

c# - ASP.NET Core 检查 ActionFilterAttribute 中的 ClientCertificate

我正在使用 ASP.NET Core 5.0 并希望ActionFilterAttribute在控制器中使用来检查证书指纹。

Startup.cs我定义了一个“自定义”ClientCertificate-Forwarder 中,ClientCertificates 在标题中定义为X-ARR-ClientCert

我的ActionFilterAttribute

现在certificatefromcontext.HttpContext.Connection.ClientCertificate为空。

我该怎么做才能将我的客户证书传递给ActionFilterAttribute?

0 投票
0 回答
43 浏览

asp.net-core-webapi - 与 RequestSizeLimit 属性相比,自定义操作过滤器属性的性能较差

当我需要限制文件上传 WebAPI 端点的允许请求大小时,我有一个用例。通常我会使用内置属性RequestSizeLimit

但是,根据要求,我需要使请求大小限制可配置并与应用程序的其余部分共享(例如,SPA 应用程序在用户上传文件之前使用相同的值进行自己的验证,也使用单元测试等。 .)。因此,为了涵盖这个用例,我实现了自己的操作过滤器:

和:

并将其用作:

问题来了。我通过以下方式上传180mb文件Postman,这是服务响应时间:

  • 没有 2 个属性中的任何一个 ~ 2.5 - 3 秒
  • [CustomRequestSizeValidator]同一时间(2.5 - 3秒)
  • [RequestSizeLimit]22毫秒!

为什么我的自定义属性[CustomRequestSizeValidator]这么慢,以及如何使请求的执行速度与 MS 的本机属性一样快[RequestSizeLimit]

从诊断工具中,我看到使用[CustomRequestSizeValidator]属性时 - 每次发出请求时内存消耗都会增加。有了[RequestSizeLimit]属性 - 内存永远不会增长。所以问题可能是框架执行逻辑的顺序。我的自定义属性很可能作为管道中的最后一步执行。但我仍然不知道如何修复它,所以欢迎任何建议。

0 投票
1 回答
272 浏览

c# - 从全局操作过滤器 .net 核心重定向到操作

在我的 .net 核心项目中,我需要在部署时显示一个维护页面。所以,我决定编写一个动作过滤器并全局注册并设置配置值以检查何时维护,我将重定向到我的维护页面。问题是正在发生重定向,但网页不断重新加载。请找到下面的代码

MyActionFilterAttribute.cs

启动.cs

在配置方法中,

维护控制器

网址 https://localhost:XXXXX/Maintenance 不断加载。

问题是:

  1. 如何停止重定向太多次问题。[请注意:我已经检查了其他堆栈溢出问题。它建议检查特定的控制器,这对我的情况没有帮助]。
  2. 有没有其他方法可以考虑?我有一个使用中间件的想法,我们可以发送响应,但我不确定如何重定向到包含动态内容的 .net razor 页面。

非常感谢任何帮助。

0 投票
0 回答
16 浏览

c# - 剃须刀项目中功能的 ActionFilter 不起作用

我的目标是记录何时以及谁在调用 GetAll() 函数,正如我在 MVC ActionFilter 中记得的那样,它就是这样工作的,但是当我尝试从 razor 实现类似的过滤器时,过滤器不起作用?有谁知道我哪里做错了?我指的是ASP.NET Core 中 Razor Pages 过滤器方法的文档

我已经创建了这样的 sample.razor 页面,它显示记录列表。

这是 GetAll() 函数

这是我试图制作的 actionFilter

0 投票
1 回答
86 浏览

asp.net - 动作过滤器:如何调用服务层和异步方法

我有一个具有许多操作方法的控制器。我的要求是检查数据库中字段的值,如果字段值为“true”,则所有操作方法都可以执行,否则这些操作方法不应该执行。该方法在服务层

接口实现

我收到一条错误消息“找不到合适的方法来覆盖”。如何清除此错误以及如何正确注入服务。以上是我尝试过的,对 async 的调用在这里失败了。

0 投票
1 回答
54 浏览

asp.net-core - 是否可以使用自定义操作过滤器重定向到另一个操作?

我不熟悉 ASP.NET Core 操作的自定义过滤器属性。如果使用自定义方法过滤器不存在某些数据,我需要重定向到另一个操作。

这是我的尝试:

我没用filterContext。当然,该RedirectToAction行显示为错误(带有红色下划线),因为它是 void 方法,而不是操作结果。正如我提到的,我不熟悉自定义过滤器。

请问有什么帮助吗?