一次登录即可进行多应用程序身份验证

时间:2019-05-29 12:12:13

标签: .net asp.net-core asp.net-identity asp.net-core-identity

我有一个运行在带有身份标识的asp.net上的应用程序,用于用户管理。

现在,我正在生产另一个具有asp.net core和Angular 7技术的应用程序。

我已经尝试为两个应用程序使用相同的数据库进行登录,但是由于.net和.net核心上的Identity具有不同的哈希算法,因此无法正常工作。

我是否可以通过仅提供第一个应用程序的任何Button链接来对.net Core和angular 7应用程序使用相同的.net应用程序验证?

当我像上面那样继续时,我发现下面列出了一些问题:-

  • 如何避免用户直接访问第二个应用程序.net核心?

如何处理这种情况?

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:2)

由于ASP.NET Core Identity使用更安全的密码哈希机制,因此默认情况下,您无法使用较旧的ASP.NET Identity访问同一数据库,因为它不了解新机制。但是,开箱即用的方法是将ASP.NET Core Identity与旧哈希一起使用,因为哈希的实际版本已实现,从而可以轻松地从旧数据库进行迁移。

如果要使用同一数据库将ASP.NET Core身份和ASP.NET身份共存,则必须使用较旧的哈希算法,因为那是ASP.NET Identity唯一支持的算法。幸运的是,您可以将ASP.NET Core Identity配置为仅使用该算法本身。

in the documentation对配置进行了说明,它看起来像这样:

services.Configure<PasswordHasherOptions>(option =>
{
    option.CompatibilityMode = PasswordHasherCompatibilityMode.IdentityV2;
});

这将有效地降级ASP.NET Core Identity以使用较旧的算法,从而与ASP.NET Identity完全兼容。