在我目前正在开发的Web应用程序中,所有用户都需要进行身份验证。目前使用
现在我需要能够将不同的授权策略应用于应用程序的不同部分,因此我想从使用全局授权过滤器切换到设置后备策略(如官方文档所述,并且建议这样做)。
这个方法可以达到预期的效果,但是如果请求不存在的资源,则返回
我该如何在使用
AuthorizeFilter
来处理此需求。现在我需要能够将不同的授权策略应用于应用程序的不同部分,因此我想从使用全局授权过滤器切换到设置后备策略(如官方文档所述,并且建议这样做)。
这个方法可以达到预期的效果,但是如果请求不存在的资源,则返回
HttpStatusCode 401
(如果未经身份验证),或者403
(如果已经通过身份验证但某些其他要求没有满足——在默认/后备策略中有几个)。以前,使用授权过滤器解决方案时,会返回404
。我猜测原因是后备策略在管道中比授权过滤器更早地进行了评估,但这仍然是一个我想避免的副作用。我该如何在使用
FallbackPolicy
的同时让应用程序像以前一样返回 404
?如果应用程序正在使用 net5.0
(或更高版本),我想我可以使用自定义 IAuthorizationMiddlewareResultHandler
,但升级不是短期计划中的事情,这意味着解决方案必须适用于 netcoreapp3.1
。