从 ASP.NET 成员提供者迁移到 IdentityServer

Migrating from ASP.NET Membership Provider to IdentityServer

我有一些应用程序是用 ASP.NET Web Form 标准编写的,没有使用依赖项注入(.NET 版本 2,3.x,4.x)。

我们使用带有 MS-SQL 服务器后端的 Membership Provider 进行身份验证。

最近,我们决定升级身份验证部分以提高安全性。

根据我们的研究,我们可能有 2 个主要问题:

  1. 将包含加密密码的数据从旧数据库迁移到 用于目标数据模型
  2. 修改应用程序代码以在其启动代码中支持 IdentityServer

我们想使用支持旧数据库的 IdentityServer4 安装新的 SSO 服务器(或将旧数据迁移到新数据模型)并为应用程序添加一些启动代码(当然还要删除当前的成员资格提供程序)。

是否有任何途径可以迁移数据和应用程序以使用具有相同自定义 MS-SQL 服务器存储库的 IdentityServer4?

这个问题有更好的方法吗?

您可以为 Identity Server 使用自己的数据库上下文。在 Startup.cs:

services.AddDbContext<YourDBContext>(options => options.UseSqlServer(<connection_string>));

但您必须扩展它以支持 Clients、ApiResources、PersistedGrants。

关于 WebForms 应用程序 - 您可以使用 IdentityServer3.AccessTokenValidationIdenitityModel 库(身份模型应该 < v2.0) - 它们与 IdentityServer 4 完美配合。不需要依赖注入,只是一家 Owin 初创公司 class。

在这种情况下,我想您不需要迁移数据