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站点之间来回传递安全令牌。