问题标签 [asp.net-web-api-filters]

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 投票
3 回答
16301 浏览

c# - 如何对 ASP.NET Web API 上的操作过滤器进行依赖注入

我真的被困在将依赖注入到 web api 的动作过滤器中的方法上。我有一个像这样的动作过滤器:

我想通过使用 Windsor 对属性存储库进行属性注入(但使用哪个 IoC 容器并不重要)

我确实想出了自定义 FilterProvider 但对我来说没有用,有人有解决方案或运行代码吗?将不胜感激

0 投票
1 回答
3894 浏览

asp.net-web-api - ASP.NET Web Api 2.0 中哪个优先,ExceptionFilter 还是 ExceptionHandler?

我的 web api 2.0 中有一个全局 ExceptionHandler,它处理所有未处理的异常,以便向 api 调用者返回友好的错误消息。我还有一个全局 ExceptionFilter,它在我的 web api 中处理一个非常具体的异常并返回一个特定的响应。ExceptionFilter 是由插件动态添加到我的 web api 中的,因此我无法在我的 ExceptionHandler 中执行它的操作。

我想知道我是否同时全局注册了 ExceptionHandler 和 ExceptionFilter ,哪个将优先并首先执行?现在我可以看到 ExceptionFilter 在 ExceptionHandler 之前执行。而且我还可以在我的 ExceptionFilter 中看到,如果我创建一个响应,则 ExceptionHandler 没有被执行。

可以安全地假设:

  1. ExceptionFilters 在 ExceptionHandlers 之前执行。

  2. 如果 ExceptionFilter 创建了响应,则 ExceptionHandler 将不会被执行。

0 投票
1 回答
72 浏览

c# - 通过操作在处理之前更改模型值

如何在 OnActionExcuting 之类的地方将发送的数据更改为控制器?

想象一下,我想开发一个中间件(类似于 asp.net 属性)将所有“a”替换为“A”,然后将值绑定到模型(在所有操作中只能看到“A”!)

0 投票
0 回答
202 浏览

c# - 使用 Oracle 保护 Web API

用例:我必须创建一个 RDBMS 为 Oracle 的 Web 应用程序 (ASP.NET MVC)。数据库已经存在一组用户/角色,这些用户/角色被授予对表执行某些操作、查看等等。因此,已经实施了安全性。Web 应用程序的范围是供内部使用的,因此应该是 Intranet。在那里,我不应该提供登录页面,因为我可以从浏览器中获取用户。考虑到我已经在 Oracle 端实现了安全性,如何继承它并将其应用到我的应用程序中?换句话说:

如果我在 Oracle 中有:

  • 数据库 (D)
  • 用户 (U)
  • 角色 (R),其中 U 具有角色 R
  • 表 (T),其中 R 被授予 T 上的 SELECT 和 INSERT

我有 ASP.NET MVC

  • DbContext (DContext) for (D)
  • 模型 (TModel) 用于 (T)
  • 控制器 (TController) 与 (TModel) 的 CRUD 操作方法。

如何将现有的 Oracle 安全性添加到上述操作中?

最初我以为我可以用 [Authorize] 属性来装饰动作。但是,我不知道如何与 Oracle 协商 Windows 凭据,以便 Windows 用户 (X) => Oracle 用户 (U)。因此,如果您尝试更新或删除一个 TModel,它应该返回一个权限不足的异常,因为不允许 U 更新或删除。

我希望有人能帮忙。提前致谢。

0 投票
2 回答
3429 浏览

asp.net - 如何重写代码以在 Asp Net Web Api 中使用 IAuthorizationFilter 和依赖注入而不是 AuthorizeAttribute 和服务位置?

我有一个习惯AuthorizeAttribute,在授予用户查看资源的权限之前,我需要使用其中一项业务层服务来验证数据库中的一些数据。为了能够在我的内部分配此服务,AuthorizeAttribute我决定使用服务位置“反模式”,这是代码:

我的应用程序中有几个其他类似的属性。使用服务定位器可能不是一个好方法。在网上搜索了一下之后,我发现有些人建议改用IAuthorizationFilter依赖注入。但我不知道如何写这种IAuthorizationFilter. 你能帮我写出和上面IAuthorizationFilter一样的东西AuthorizeAttribute吗?

0 投票
1 回答
388 浏览

c# - ASP.NET WEB API - CamelCasePropertyNamesContractResolver - 强制忽略特定端点

我正在使用 ASP.NET web api。为了为端点返回的属性提供骆驼大小写支持,我添加了以下代码:

这工作正常,但我想为其中一个端点添加一个例外。这将确保从该端点返回数据时,属性不是驼峰式的。如何添加此异常或单个端点?

0 投票
1 回答
1092 浏览

c# - Web API 过滤器未捕获从方法组抛出的异常

我正在使用WebApi. ActionFilter我的基本控制器上有一个自定义,并在ExceptionFilter全球范围内添加了一个自定义。两者都继承自命名空间中关联的 FilterAttributes System.Web.Http.Filters,而不是 mvc 版本。

我的一个服务中的私有方法抛出了一个异常,当它在 Linq 语句(在本例中为 a select)中使用时,这个方法就是 resharper 调用的方法组。

任一过滤器都未捕获此异常(请参阅下面的过滤器)。我的操作过滤器说没有异常,我的异常过滤器永远不会被击中。如果我在 Linq 选择(我已注释掉的那个)之前抛出异常,那么异常会按预期捕获。

使用提琴手,我最终得到的是:

我的动作过滤器的一部分:

和我的异常过滤器的一部分:

0 投票
1 回答
1565 浏览

c# - Asp.Net Web API 2 中带参数的属性路由

在 Asp.Net Web API 2 属性路由中,如果我调用任何属性,我需要获取具有该属性的所有数据映射列表,但我得到的是满足条件的序列的第一个元素。
我的控制器如下所示:

0 投票
1 回答
1916 浏览

c# - 身份验证过滤器不适用于 Web API 中的授权过滤器

我正在尝试为 ASP.NET Web API 创建一个自定义身份验证过滤器。下面是我的身份验证过滤器的代码

我已经全局配置了身份验证过滤器,并使用断点确认过滤器被调用。

问题是如果我[System.Web.Http.Authorize]向任何控制器添加属性,那么我会收到 401 Unauthorized 错误。我可以User.Identity.Name在控制器操作中访问用户名,但是如果我添加授权属性,我会收到错误消息。有什么我想念的吗。

谢谢你的时间。如果需要任何其他信息,请添加评论。

0 投票
1 回答
61 浏览

asp.net-web-api-filters - web api 操作过滤器不调用,为什么?

我创建了一个 webapi 过滤器(它使用 Microsoft.AspNet.WebApi.Core):

....}

并在我的控制器中使用它:

比我添加到 bootstrpper 使用:

问题是 OnActionExecuting 没有触发。

你能帮忙吗?