2015-06-24 33 views
2

我想升級Asp.Net Identity 2'自定義存儲提供程序'以使用Identity在Visual Studio 2015中使用默認的MVC6模板創建3個測試版。如何使用ASP-5/MVC-6/Identity爲自定義Asp.Net身份存儲提供程序註冊中間件3

我很難學習如何使用ASP5中間件註冊Asp.Net Identity 3自定義存儲提供程序。

在我做了以下的時刻,但不知道這是否是正確的:

services.AddIdentity() 
.AddRoleStore>() 
.AddUserStore>() 

.AddDefaultTokenProviders(); 

我不知道我怎麼也註冊數據庫環境?

在我的項目被稱爲MySQLDatabase.cs

我無法找到任何文件。

註冊Identity.EntityFramework中間件似乎是以不同於自定義存儲提供程序的方式完成的。

「InvalidOperationException異常:

我運行默認MVC6模板,然後點擊「註冊」按鈕時收到以下錯誤無法爲類型解析服務‘Bondii.Identity.MySQL.MySQLDatabase’試圖激活'Bondii.Identity.MySQL.UserStore`1 [Bondii.Identity.MySQL.IdentityUser]'。「

我的,包括完整的項目代碼:

GitHub的倉庫看到我的代碼是: https://github.com/simonpbond/bondii.identity.mysql

原來的「自定義存儲提供基於身份2教程 - 我想升級到Identity 3 : http://www.asp.net/identity/overview/extensibility/implementing-a-custom-mysql-aspnet-identity-storage-provider

原來的示例代碼: https://aspnet.codeplex.com/SourceControl/latest#Samples/Identity/AspNet.Identity.MySQL/

回答

0

在你startup.css你需要的東西,如:

services.AddTransient(_ => new MySQLDatabase()); 

前:

services.AddIdentity<ApplicationUser, IdentityRole>() 
      .AddRoleStore<MySQL.RoleStore<IdentityRole>>() 
      .AddUserStore<MySQL.UserStore<IdentityUser>>() 

      .AddDefaultTokenProviders(); 

這會給你每次請求數據庫連接我相信並且會通過DI傳遞給您的商店的構造者。

這可能並不是最好的方式,它可能會更好地通過某種工廠作爲一個單身人士,但這應該工作的方式,你有它的設置。

相關問題