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