【问题标题】:custom authorize attribute or policy based authorization handler自定义授权属性或基于策略的授权处理程序
【发布时间】:2021-05-26 22:04:17
【问题描述】:

我应该检查自定义标头是否存在,例如:[“apikey”],然后检查数据库中是否存在给定键。如果不存在,则未经授权返回。我应该使用授权属性还是基于策略的授权处理程序?

【问题讨论】:

  • 如果您可以使用策略,我们鼓励您使用策略。编写自定义授权属性应该是最后的手段。
  • 欢迎来到 StackOverflow。为了帮助您,我们必须充分理解您的问题。请具体,不要跳过细节。请阅读"How to ask a good queatios"
  • 我同意@Marco,使用基于策略的授权将使您的代码更可重用和更清洁。
  • 由于验证起来很简单,我很困惑哪个更好。即使我发现它基于策略的身份验证处理程序是一种更好的方法,并且可以在未来添加更多的请求处理程序。
  • 我不同意。使用策略是人为的,并且“僵硬”你最终还是硬编码这些策略。我发现,对于简单的验证,最好使用属性,而对于基于权限(不是基于角色)的安全性等其他事情,最好使用属性并使其成为数据库驱动的,

标签: c# asp.net-core .net-core


【解决方案1】:

与授权处理程序相比,我发现自定义身份验证处理程序是这种场景的更好方法,并且实现了相同的方法。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-12
    相关资源
    最近更新 更多