【问题标题】:Looking to implement user management into my .net core api希望在我的 .net 核心 api 中实现用户管理
【发布时间】:2017-01-18 03:25:32
【问题描述】:

我正在考虑在使用 cqrs+eventstore 的 .net 核心 api 中实现用户管理。

我的想法: 因为我将在我的大多数域模型中使用 mongo,所以我想为什么不也使用它来存储我的用户。

即有一个CreateUser 命令和查询服务订阅UserCreated 事件并将用户存储在mongo 中。

我希望将 ASP.NET Core Identity 用于我的用户管理,但我在任何地方都能看到身份,例如https://docs.microsoft.com/en-us/aspnet/core/security/authentication/identity,它与 asp.net mvc 应用程序一起使用。这让我想我是否甚至需要身份。我将向各种客户端、移动端、Web 等公开我的 api。

阅读还有一个 IdentityServer4,我不太明白它是如何适应的。

有人指出我正确的方向吗?

【问题讨论】:

  • 你不需要使用 MVC 来使用 Identity 的东西。 Identity 只是使用实体框架为您提供一些表,并为您提供一些服务类,用于创建/更新用户、验证用户、管理声明、生成用于验证电子邮件地址的令牌或请求重置密码等基本操作。我肯定会推荐使用内置的标识 - 它经过深思熟虑,可以轻松根据您的需求进行定制。它通过授权属性等与 MVC 很好地集成,但您不必使用 MVC 来使用 Identity。
  • 所以你说的是我将使用 web api 来通过UserManager.cs 等执行创建/更新等任务?即(客户端:网络、移动设备等)--> web api --> (Identity + EF)?
  • 就是这样,是的。
  • identityserver4 在哪里适合?还有来自stackoverflow.com/q/39862314/7379424 的讨论提到它将添加基于 cookie 的身份验证。有什么问题吗?
  • 听起来你混淆了身份框架和身份服务器。身份框架只是为您提供了在您的应用程序中管理用户的工具。 IdentityServer 或多或少是它自己的应用程序,您可以自定义并与您的 web api 分开运行,然后您的 web api 可以针对它进行身份验证。无论哪种方式,您都可以使用令牌而不是 cookie。令牌通常是首选,因为它们更具可扩展性。这是对令牌 v cookie 的更好分析(我只是用谷歌搜索了一下,似乎还可以)..stormpath.com/blog/token-authentication-scalable-user-mgmt

标签: asp.net-core cqrs asp.net-core-webapi


【解决方案1】:

您不需要 MVC 即可使用 Identity。我会推荐 Identity Server(它的创建者在 Pluralsight 上有一个很好的教程)。

您可以很好地在 .Net Core 中拥有一个 Web API,并使用 Identity Server 创建令牌等,当您想向不同的客户端(平台)公开时,这是推荐的身份验证机制。

有意义吗?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-06-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-28
    • 1970-01-01
    • 1970-01-01
    • 2020-05-16
    相关资源
    最近更新 更多