14

我正在使用ASP.Net Core 2.0,我想用个人用户帐户授权类型构建Web API项目,但唯一的选择是Connect to an existing user store in the cloudCreate new project screenshotASP.NET Core 2.0中Web API的本地用户帐户存储

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

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

+0

想知道这个答案。在Mac上更糟 - 你甚至没有为个人用户帐户选择。 – Shumii

回答

11

尝试用命令

dotnet new webapi -au Individual 

可以在VS之后打开您的项目启动项目在控制台中。 (解决对话框)。然后你可以使用例如授权属性。 但该项目仍配置为使用Azure承载认证。 你必须决定从哪里获取身份。 您可以identityserver4或建立自己的“为ASP.NET核心身份自定义存储供应商”(MS-Docs

到MVC Web应用程序的区别:在这里,你有意见的账户控制器来处理注册,并得到一个用户名和密码等等。

+0

“*但该项目仍然配置为使用Azure承载身份验证。*”我很困惑这是如何回答这个问题的 - 您在生成的项目中未执行身份验证。它仍然依赖Azure。 'services.AddAuthentication(sharedOptions => { sharedOptions.DefaultScheme = JwtBearerDefaults.AuthenticationScheme; }) .AddAzureAdB2CBearer(选项=> Configuration.Bind( “AzureAdB2C”,选项));' – ruffin

2

我被同样的事情困惑,最终选择Web Application而不是Web API。在MS中删除“应用内帐户”可能有逻辑 - 使用Web API您可能正在编写SPA,并且“视图”(登录,忘记密码等)应该位于您的客户端代码中;服务器上没有Razor视图。

请注意,如果使用IdentityServer 4,视图将在IS4应用程序中生成;商业API应用程序中的而不是

所以我认为微软试图给你一个提示在这里...

+2

我与Felix这里同意。您可以选择Web应用程序模板,然后删除用于帐户管理的视图和控制器,并修改'Startup.cs'以仅使用基于令牌的身份验证所需的中间件。 – ajawad987

+0

@ ajawad987完成后,您的'Startup.cs'中剩下了什么? – ruffin