ASP.NET Core Web API模板中没有单独的用户帐户auth选项

Bla*_*ell 27 asp.net asp.net-web-api asp.net-identity asp.net-core asp.net-core-webapi

关于为什么在最新的ASP.NET Core Web API模板中没有单独的用户帐户身份验证选项,我感到有点困惑.

是否仍然可以按照MVC模板的方式实现单个用户帐户,还是没有意义?

假设我正在创建一个独立的Web API,它将拥有访问具有AspNet Identity表的数据库的所有业务逻辑和数据层.我打算用MVC应用调用这个API.

我知道这样做的一种方法是使用个人用户帐户auth创建一个asp.net MVC应用程序,并使用controllers/api文件夹在MVC应用程序中构建API.但是,我不希望这样做,因为我希望API是它自己的独立项目,可以托管在完全不同的服务器上,并由多个应用程序访问,而不仅仅是MVC应用程序.

由于没有模板,有人可以引导我在正确的方向上进行身份验证通常如何工作吗?

Ale*_*xan 10

.NET Core Web API的单个用户帐户身份验证选项在.NET Core 2.0 Preview 1中提供.

不幸的是,VS 2017版本中没有.NET Core 2.0 Preview 1.

但是您可以安装Visual Studio 2017 Preview(您可以将它与VS 2017稳定版并排使用):在此输入图像描述

  • 这被带走了吗?我安装了VS 2017 Preview,我个人用户帐户的唯一选择是"连接到云中的现有用户商店" (6认同)
  • 这个选项没有被取消,但是如果你从 API 模板创建一个项目,它是隐藏的。 (2认同)
  • .net 6 Web API 中也不可用。 (2认同)

小智 5

我认为您可以使用IdentityServer4,它允许使用 OpenID Connect 和 OAuth2 等协议实现 ASP .NET Core Web API 的单点登录和访问控制。它提供与 ASP.NET Core Identity 和 Entity Framework Core 的集成。

您需要安装以下 nuget 包:

Install-Package IdentityServer4
Run Code Online (Sandbox Code Playgroud)

并将 IdentityServer 中间件添加到 HTTP 管道:

app.UseIdentityServer();
Run Code Online (Sandbox Code Playgroud)

您可以在此处找到几个快速入门示例或关注本文