gpt4 book ai didi

asp.net-mvc - 解析 Controller 和操作上的 FilterAttributes

转载 作者:行者123 更新时间:2023-12-03 05:51:37 25 4
gpt4 key购买 nike

我想这样做:

[RequiresAuthentication(CompanyType.Client)]
public class FooController
{
public ActionResult OnlyClientUsersCanDoThis()

public ActionResult OnlyClientUsersCanDoThisToo()

[RequiresAuthentication]
public ActionResult AnyTypeOfUserCanDoThis()

你可以明白为什么这行不通。在第三个操作中, Controller 级过滤器将阻止非客户端。我想“解决”冲突的过滤器。我希望更具体的过滤器( Action 过滤器)始终获胜。这看起来自然且直观。

曾几何时,filterContext 公开了执行操作的 MethodInfo。那会让这件事变得很容易。我考虑使用路线信息自己进行一些反射(reflection)。这是行不通的,因为该操作可能会重载,而且我无法判断当前正在执行哪个操作。

另一种方法是在 Controller 级别或操作级别设置过滤器范围,但不要混合,这会产生大量额外的属性噪音。

最佳答案

我们正在研究一种公开其他过滤器的方法,但没有 promise 。

将过滤器应用于 Controller 并不是真正的“范围”,它只是将其应用于所有过滤器的简写。不幸的是,这意味着您不能包含除一项操作之外的所有操作。执行此操作的一种简单方法是将该方法放入另一个 Controller 中。您甚至可以仅针对这种情况添加自定义路由,这样 URL 就不必更改。

关于asp.net-mvc - 解析 Controller 和操作上的 FilterAttributes,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/274039/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com