ASP.NET 身份 2 到 3
ASP.NET Identity 2 to 3
对,所以..我觉得我很困惑!!
我有几个 ASP.NET MVC 5 站点 运行 使用 ASP.NET Identity 2.1,一切都很好。我正在创建一个新的 MVC 6 站点,我希望用户可以使用他们用于其他系统的现有凭据。我已经尝试过以下方法:
- 正在将 ASP.NET 身份 2 数据库迁移到 3(说它不能,因为表已经存在,我认为它会诚实地迁移用户)
- 尝试让 MVC 6 与 ASP.NET Identity 2.1 一起工作,但惨遭失败
我只是想知道我的选择是什么,因为新版本的文档不是很好,我知道数据库中有 DDL 更改,但我有点希望我的 MVC 5 网站有办法继续与 .NET Identity 3 数据库向后兼容 2.1。
我的另一个选择是升级 MVC 5 应用程序以使用 Identity 3,这反过来我认为意味着将它们更新到 MVC 6,这是我真正没有资源的东西,或者有一个全新的身份数据库(这似乎是最简单的选择)。
任何意见都会有所帮助,毫无疑问,我遗漏了一些细节,如果有人对设置有任何进一步的疑问,我很乐意填补空白。
我也在做同样的事情,这是一个很大的努力 - 你将不得不 运行 数据库迁移,但是首先
新 ASP 身份 V3 表 和迁移
新 ASP 身份 V3 字段
配置表
在 Startup.cs 中更改 services.AddIdentity
services.AddIdentity<ApplicationUser, IdentityRole<int>>()
.AddEntityFrameworkStores<ApplicationDbContext, int>()
.AddDefaultTokenProviders();
在 ApplicationContext.cs 中将 class 更改为以下签名。
public class ApplicationDbContext : IdentityDbContext<ApplicationUser, IdentityRole<int>, int>
在 ApplicationUser.cs 中将 class 更改为以下签名。
`public class ApplicationUser : IdentityUser<int> {...}`
- 考虑到所有更改,我发现删除
迁移文件夹(迁移除外)。转到命令提示符
项目的目录和 type/add 像这样的迁移
dotnet
ef migrations add MyDatabaseHere -o Data\Migrations
。 (-o选项是指定目标文件夹而不是根文件夹)
- 对于任何迁移问题,我会简单地删除数据库并重新部署。
- 或者你可以使用 this 实现自动化 我没试过这个
实施 IdentityServer3,它可以直接连接到您现有的 ASP.Net Identity EF DB。然后将其他站点用作 oAuth 客户端,作为 MVC 5 and/or MVC 6 无关紧要,因为它们所做的只是在您的 IdentityServer3 站点之间来回传递安全令牌。
您可以在 Asp.Net 核心中使用身份 2 并在 database.Just 中维护密码哈希 在 startup.cs
中添加此代码
services.Configure<PasswordHasherOptions>(options => {
options.CompatibilityMode = PasswordHasherCompatibilityMode.IdentityV2;
});
对,所以..我觉得我很困惑!!
我有几个 ASP.NET MVC 5 站点 运行 使用 ASP.NET Identity 2.1,一切都很好。我正在创建一个新的 MVC 6 站点,我希望用户可以使用他们用于其他系统的现有凭据。我已经尝试过以下方法:
- 正在将 ASP.NET 身份 2 数据库迁移到 3(说它不能,因为表已经存在,我认为它会诚实地迁移用户)
- 尝试让 MVC 6 与 ASP.NET Identity 2.1 一起工作,但惨遭失败
我只是想知道我的选择是什么,因为新版本的文档不是很好,我知道数据库中有 DDL 更改,但我有点希望我的 MVC 5 网站有办法继续与 .NET Identity 3 数据库向后兼容 2.1。
我的另一个选择是升级 MVC 5 应用程序以使用 Identity 3,这反过来我认为意味着将它们更新到 MVC 6,这是我真正没有资源的东西,或者有一个全新的身份数据库(这似乎是最简单的选择)。
任何意见都会有所帮助,毫无疑问,我遗漏了一些细节,如果有人对设置有任何进一步的疑问,我很乐意填补空白。
我也在做同样的事情,这是一个很大的努力 - 你将不得不 运行 数据库迁移,但是首先
新 ASP 身份 V3 表 和迁移
新 ASP 身份 V3 字段
配置表 在 Startup.cs 中更改 services.AddIdentity
services.AddIdentity<ApplicationUser, IdentityRole<int>>()
.AddEntityFrameworkStores<ApplicationDbContext, int>()
.AddDefaultTokenProviders();
在 ApplicationContext.cs 中将 class 更改为以下签名。
public class ApplicationDbContext : IdentityDbContext<ApplicationUser, IdentityRole<int>, int>
在 ApplicationUser.cs 中将 class 更改为以下签名。
`public class ApplicationUser : IdentityUser<int> {...}`
- 考虑到所有更改,我发现删除
迁移文件夹(迁移除外)。转到命令提示符
项目的目录和 type/add 像这样的迁移
dotnet ef migrations add MyDatabaseHere -o Data\Migrations
。 (-o选项是指定目标文件夹而不是根文件夹) - 对于任何迁移问题,我会简单地删除数据库并重新部署。
- 或者你可以使用 this 实现自动化 我没试过这个
实施 IdentityServer3,它可以直接连接到您现有的 ASP.Net Identity EF DB。然后将其他站点用作 oAuth 客户端,作为 MVC 5 and/or MVC 6 无关紧要,因为它们所做的只是在您的 IdentityServer3 站点之间来回传递安全令牌。
您可以在 Asp.Net 核心中使用身份 2 并在 database.Just 中维护密码哈希 在 startup.cs
中添加此代码 services.Configure<PasswordHasherOptions>(options => {
options.CompatibilityMode = PasswordHasherCompatibilityMode.IdentityV2;
});