对于为什么最新的ASP.NET Core Web API模板中没有单独的用户帐户身份验证选项,我感到有点困惑。
是否仍然可以按照MVC模板的方式实现单个用户帐户,还是没有意义?
假设我正在创建一个独立的Web API,它将拥有访问具有AspNet Identity表的数据库的所有业务逻辑和数据层。我打算用MVC应用程序调用这个API。
我知道这样做的一种方法是创建一个带有个人用户帐户身份验证的asp.net MVC应用程序,并使用controllers / api文件夹在MVC应用程序中构建API。但是,我不希望这样做,因为我希望API是它自己的独立项目,可以托管在完全不同的服务器上,并由多个应用程序访问,而不仅仅是MVC应用程序。
由于没有模板,有人可以引导我在正确的方向上了解身份验证通常如何工作吗?
答案 0 :(得分:10)
在.NET Core 2.0 Preview 1中提供了ASP.NET Core Web API的单个用户帐户身份验证选项。
不幸的是,VS 2017版本中没有.NET Core 2.0 Preview 1。
但您可以安装Visual Studio 2017 Preview(您可以将其与VS 2017稳定版并排使用):
答案 1 :(得分:4)
我认为您可以使用IdentityServer4 ,它允许使用OpenID Connect和OAuth2等协议实现ASP .NET Core Web API的单点登录和访问控制。它提供与ASP.NET核心身份和实体框架核心的集成。
您需要安装以下nuget包:
Install-Package IdentityServer4
并将IdentityServer中间件添加到HTTP管道:
app.UseIdentityServer();