gpt4 book ai didi

c# - ASP.NET Web API 授权过滤器

转载 作者:太空狗 更新时间:2023-10-30 01:04:19 24 4
gpt4 key购买 nike

我有一个覆盖了 OnAuthorization 方法的全局授权过滤器。

调试时,我看到首先实例化了 Controller 类,然后调用了 OnAuthorization 方法。

这是已知行为吗,因为我在 Controller 构造函数中有一些代码,如果未经授权则无需运行。

有什么办法可以解决这个问题吗?

最佳答案

Action 过滤器在应用它们的 Action 之前执行。如果您有全局授权过滤器,这意味着它们在全局范围内注册,您不必用这些过滤器装饰每个 Action ,但这不会改变 Action 过滤器的行为,即在 Action 之前执行。

Controller 首先被初始化,然后调用相应的 Action ,所以你的授权过滤器将在 Controller 的构造函数之后和 Action 之前执行。这是 Action 过滤器的行为,因为它们是这样设计的。

如果您想在 Controller 构造之前执行授权,请尝试通过继承 DelegatingHandler 类来创建用于授权的消息处理程序而不是 Action 过滤器。

关于c# - ASP.NET Web API 授权过滤器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23928160/

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