【问题标题】:Why isn't there an AuthenticationFilterAttribute class in ASP.NET Web API 2?为什么 ASP.NET Web API 2 中没有 AuthenticationFilterAttribute 类?
【发布时间】:2014-05-08 23:47:31
【问题描述】:

ASP.NET Web API 2 自带five filter interfaces

  • IActionFilter
  • IAuthenticationFilter
  • IAuthorizationFilter
  • IExceptionFilter
  • IOverrideFilter

除了IAuthenticationFilter,所有这些接口都有内置实现(例如ActionFilterAttributeAuthorizationFilterAttribute)。这是有原因的,还是 Web API 开发人员只是忘记为该特定接口提供实现?

更新

阅读 Yishai Galatzer 的回答后,我最终实现了“缺失”属性并将其上传到 Nuget.org:https://www.nuget.org/packages/WebApi.AuthenticationFilter

【问题讨论】:

  • 我假设没有AuthenticationFilterAttribute,因为您可以使用AuthorizationFilterAttribute 来满足用例(假设用例是您只“授权”已通过身份验证的人)
  • 进一步阐述,授权是授予访问权限的过程,然后可以使用身份验证来确定授权。
  • @Matthew IAuthenticationFilter 接口是在 v2 中引入的,因此您不必使用授权过滤器来执行身份验证和授权,这确实是一件好事。我不太明白的是为什么他们没有为那个新接口提供一个实现,以便我可以子类化它并以与自定义授权相同的方式实现我的自定义身份验证。
  • @Matthew 我当然可以自己实现IAuthenticationFilter,它会工作得很好。但对我来说,子类化 FilterAttribute 类会更加一致,因为它通常与所有其他过滤器一起完成。

标签: asp.net asp.net-web-api asp.net-web-api2


【解决方案1】:

因为我们不希望普通用户使用 AuthenticationFilter。这是一种不把它放在前面和中心的方式。

【讨论】:

    猜你喜欢
    • 2021-05-04
    • 2014-07-22
    • 1970-01-01
    • 2015-09-06
    • 2012-10-11
    • 2022-01-11
    • 2018-01-27
    • 2012-03-16
    • 1970-01-01
    相关资源
    最近更新 更多