ASP.NET Core 2.0中用于Web API的本地用户帐户存储

Kah*_*azi 30 c# asp.net entity-framework asp.net-core-mvc asp.net-core-2.0

我正在使用ASP.Net Core 2.0,我想用个人用户帐户授权类型构建一个Web API项目,但唯一的选择是Connect to an existing user store in the cloud. 创建新项目截图

如何为具有个人用户帐户的Web API添加模板Store user accounts in-app

此选项可用于Web应用程序,但不适用于Web API.

Kir*_*ten 13

尝试使用该命令在控制台中启动项目

dotnet new webapi -au Individual
Run Code Online (Sandbox Code Playgroud)

之后你可以在VS中打开你的项目.(解决对话框问题).然后你可以使用例如authorize-attribute.但该项目仍配置为使用Azure承载身份验证.你必须决定从哪里获得身份.您可以使用identityserver4或构建自己的"ASP.NET核心标识的自定义存储提供程序"(MS-Docs)

与MVC WebApp的区别在于:在这里,您有一个帐户控制器,其中包含处理注册的视图并获取用户名和密码等等.

  • “ *但是该项目仍配置为使用Azure Bearer身份验证。*”我很困惑如何回答这个问题-您没有在生成的项目中执行应用内身份标识。它仍然依赖于Azure。`services.AddAuthentication(sharedOptions => {sharedOptions.DefaultScheme = JwtBearerDefaults.AuthenticationScheme;}).AddAzureAdB2CBearer(options => Configuration.Bind(“ AzureAdB2C”,options)))。 (4认同)

Fel*_*lix 5

我对同一件事感到困惑,最终选择了Web Application而不是Web API。MS删除“应用程序内帐户”中可能存在逻辑-使用Web API,您可能正在编写SPA,并且客户端代码中应包含“视图”(登录,忘记密码等);不是服务器上的Razor视图。

请注意,如果您使用IdentityServer 4,则视图是在IS4应用程序中生成的。不在 Business API应用程序中。

因此,我认为Microsoft试图在这里给您一个提示...

  • 我在这里同意菲利克斯。您可以选择Web应用程序模板,然后删除用于帐户管理的视图和控制器,并修改Startup.cs以仅具有基于令牌的身份验证所需的中间件。 (4认同)