AddIdentity() 失敗“InvalidOperationException:方案已存在:Identity.Application”
我正在嘗試將 facebook 登錄添加到我的 .NET Core 2.1 站點
我正在關注這個,指南和更具體的,這個(用於 facebook 登錄)
在將以下行添加到 startup.cs 之後,在 ConfigureServices-method 中
public void ConfigureServices(IServiceCollection services) { ... services.AddIdentity<ApplicationUser, IdentityRole>() .AddEntityFrameworkStores<ApplicationDbContext>() .AddDefaultTokenProviders(); ... }我在執行應用程序時收到錯誤消息。沒有這些行,它可以“正常”工作。使用者可以登錄 facebook 並批准我的申請,然後我會收到電子郵件等等。但我猜使用者資訊不會添加到我的數據庫中
InvalidOperationException:Scheme 已經存在:Identity.Application Microsoft.AspNetCore.Authentication.AuthenticationOptions.AddScheme(string name, Action configureBuilder)…
程式碼越過了添加的行,並且在片刻後(在啟動期間)出現錯誤。我在我的項目中進行了搜尋(這只是一個裸露的 .NET Core 2.1 Web 應用程序,來自模板),但我看不到“AddIdentity”的任何其他用法。
我確實找到了一個“AddDEfaultIdentity()”,註釋掉了那一行。但後來我得到了
InvalidOperationException:沒有 註冊類型“Microsoft.AspNetCore.Identity.UserManager`1[Microsoft.AspNetCore.Identity.IdentityUser]”的服務。Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetRequiredService(IServiceProvider 提供程序,類型 serviceType)
我有一個類似的問題。這可能對使用 .Net Core 3.0 的人更有幫助。在四處探勘之後,我發現一旦你使用腳手架創建了一個“身份”區域。在 Identity 文件夾中創建了一個名為“IdentityHostingStartup.cs”的文件。
在該類中,創建了另一個“AddDefaultIdentity”實例以及其他一些服務。
如果您從“Startup.cs”中刪除“addDefaultIdentity”,您的應用程序應該會啟動。此外,如果您收到空連接字元串錯誤。更新 IdentityHostintgStartup.cs 中的連接字元串
注意:刪除任何一個 addDefaultIdentities 都可以。你只是不能在兩個地方都有它。
希望這可以幫助。

