5

對,如此..我想我很困惑!ASP.NET身份2至3

我有幾個ASP.NET MVC 5網站運行使用ASP.NET身份2.1,一切都很好。我正在創建一個新的MVC 6站點,我希望用戶使用他們用於其他系統的現有憑證。我已經嘗試以下:

  1. 遷移ASP.NET身份2數據庫3(說,它無法爲表已經存在,我認爲這將遷移在所有誠實的用戶)
  2. 試圖讓MVC 6與ASP.NET身份2.1工作,並慘敗

我只是想知道我的選擇是因爲文件是不是在新版本上偉大的,我得到的有在DB DDL變化,但我希望有一種方法可以讓我的MVC 5網站繼續進行,因爲.NET Identity 3數據庫向後兼容2.1。

我的其他選擇是升級MVC 5應用程序以使用Identity 3,我相信這意味着將它們更新爲MVC 6,這是我沒有真正擁有的資源,或者擁有全新的Identity數據庫(這似乎是最不重要的選擇)。

任何意見將是有益的,毫無疑問,我已經錯過了一些細節太高興了填補空白的人應該有關於設置任何進一步的問題。

+0

沒有人? :( – MrKobayashi

回答

2

我在做同樣的事情,它是一個很好的協議的努力 - 而你就要跑數據庫遷移,但首先

ASP身份V3表 &遷移

The ASP Identity V3 Tables & Migration

ASP身份V3場

The fields inside the users table, you can extend this, see below

配置表 在Startup.cs和變化services.AddIdentity

services.AddIdentity<ApplicationUser, IdentityRole<int>>() 
    .AddEntityFrameworkStores<ApplicationDbContext, int>() 
    .AddDefaultTokenProviders(); 

在ApplicationContext.cs和類更改爲以下簽名。

public class ApplicationDbContext : IdentityDbContext<ApplicationUser, IdentityRole<int>, int> 

在ApplicationUser.cs中,將類更改爲以下簽名。

`public class ApplicationUser : IdentityUser<int> {...}` 
  • 鑑於我發現它更容易刪除 遷移的文件夾(除遷移)的一切都改變。轉到命令提示符 項目的目錄並鍵入/添加像dotnet ef migrations add MyDatabaseHere -o Data\Migrations這樣的遷移。 (-o選項是指定目標文件夾而不是根文件夾)
  • 對於任何遷移問題我只需刪除數據庫並重新部署。
  • 或者你可以用this自動化我還沒有試過這種

我有兩個遷移腳本從EF,我不知道爲什麼...但對於從GitHub更多的參考資料鏈接1 & 2

2

實現IdentityServer3,它可以直接掛鉤到你現有的ASP.Net Identity EF數據庫中。然後使用其他站點作爲oAuth客戶端,MVC 5和/或MVC 6不重要,因爲他們將要做的就是在IdentityServer3站點之間來回傳遞安全令牌。