【问题标题】:Microsoft Asp.Net Identity 2.0 - Entity Framework vs. Custom ProviderMicrosoft Asp.Net Identity 2.0 - 实体框架与自定义提供程序
【发布时间】:2014-06-26 09:59:42
【问题描述】:

我正在编写一个新网站,并且正在研究 Asp.Net Identity 2.0。开箱即用,它使用实体框架进行所有数据访问。对于站点的其余部分,我们正在创建用于数据访问的中间件 Web 服务。出于安全考虑,我们最初的计划是 Web 服务器将与中间件对话,而中间件将通过实体框架与数据库对话。我们曾计划通过防火墙阻止来自 Web 服务器的数据库访问。

我发现我可以为 Identity 2.0 创建一个自定义提供程序,然后它可以使用中间件进行数据访问。

这是我的问题:

  1. 不允许 Web 服务器直接访问数据库是否更安全?
  2. 如果它更安全,为什么微软不开箱即用地构建它
  3. 如果您像我们一样从头开始,您会建议使用实体框架还是编写一个通过我们的中间件层的自定义提供程序?

谢谢。

【问题讨论】:

  • 为什么不直接创建一个“安全”Web 服务并在其中执行 ASP.Net 身份验证,从您的网站调用它? 1. 某处某处最终需要访问数据库。 2. Microsoft 提供库。你如何实现它们是另一回事。 3. 我会按原样使用 ASP.NET Identity,然后在需要时将其他业务逻辑/数据访问移动到您的 Web 服务中。
  • 是的 - 我想我正在从安全角度寻找最佳实践...

标签: asp.net entity-framework asp.net-identity


【解决方案1】:

1.) 它可以是安全的。我不认为这是一个安全问题,而是耦合问题。如果将来要从 Entity Framework 升级或更改怎么办?如果你想从 Identity 2.0 改变怎么办?如果您想升级其中一个但由于另一个尚不支持而无法升级怎么办。

2.) 微软首先想要推广它的产品。为简单起见,如果您对 Entity Framework 和 Identity 2.0 没问题,并且不介意它们的耦合程度,这可能是一个非常好的解决方案。

3.) 您可以在自定义提供程序上花费多少时间/精力?创建自己的提供程序可能不值得。

【讨论】:

    【解决方案2】:

    开箱即用的 Asp.NET Identity 实际上是 Entity Framework 上的 Asp.Net Identity。它为您生成数据库、连接字符串、模型文件、控制器和上下文类,您可以将其重定向到您自己的数据库,以便在其中生成身份表。一切都非常安全,他们已经为您处理了很多身份验证/密码哈希。我不会说创建自己的提供者是值得的,但如果你愿意,你也可以在 Identity 中创建自己的提供者。身份 2.0 很棒。很容易添加自定义表格属性等。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-09-14
      • 1970-01-01
      • 2018-08-16
      • 1970-01-01
      • 2011-07-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多