【问题标题】:Is getting User/Tenant Id in Data/Repository Layer bad practise?在数据/存储库层中获取用户/租户 ID 是不好的做法吗?
【发布时间】:2023-03-24 23:01:01
【问题描述】:

我想知道人们对使用 DI 将 Microsoft 身份注入数据层然后从中获取用户 ID 的想法。这是违反 SoC 还是只是糟糕的开发实践?

对于我开发的东西,我不得不这样做,因为我不希望我的数据层回复通常会获取用户标识符的服务。

我承认我不是软件架构方面的专家,这就是我的解决方案:

数据

【问题讨论】:

  • 是的。提取控制器中的用户/租户 ID(可能来自 HttpContext 或 ClaimsPrincipal)并使用它来调用服务、中介模式处理程序等。那么就不需要在您的服务或数据程序集中拥有 Identity。
  • 尼尔,您应该考虑将其发布为答案。

标签: c# architecture asp.net-identity


【解决方案1】:

正如 Neil 所说,传递像 UID 这样的标识值可以让您从下游组件中移除依赖项,减少依赖项使部署、版本控制和依赖项管理更容易。

这也意味着您的下游代码更容易测试,因为它更容易运行测试 - 您只需传递 UID 而不是构造实际身份。

您可能希望数据访问组件获取 UID 本身的一个原因是,如果您不希望它处于必须信任传递给它的 UID 的位置。虽然这在理论上可能很有趣,但这并不是我在“野外”实际见过的场景。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-10-27
    • 1970-01-01
    • 1970-01-01
    • 2010-10-11
    • 2021-04-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多