Аутентификация ASP.NET |.NET Framework |.NET Core |Бок о бок |угловатый - PullRequest
0 голосов
/ 26 октября 2019

У меня есть веб-приложение ASP.NET (.NET Framework / Angular) и базовое веб-приложение ASP.NET (Angular). Они должны бежать бок о бок. Я хотел бы использовать ту же базу данных идентичности. Но похоже, что используются разные хэши паролей. Можно ли изменить базовое веб-приложение ASP.NET (Angular), чтобы оно использовалось так же, как хеш-пароль пароля веб-приложения ASP.NET (.NET Framework / Angular)?

Я уже обновил базу данных следующим образом:

ALTER TABLE AspNetUsers ADD
   ConcurrencyStamp VARCHAR(255) NULL,
   LockoutEnd DATETIME NULL,
  NormalizedEmail VARCHAR(255) NULL,
  NormalizedUserName VARCHAR(255) NULL;
GO

ALTER TABLE ASPNETROLES ADD
   ConcurrencyStamp VARCHAR(255) NULL,
   NormalizedName VARCHAR(255) NULL;
GO

CREATE TABLE [dbo].[__EFMigrationsHistory](
    [MigrationId] [nvarchar](150) NOT NULL,
    [ProductVersion] [nvarchar](32) NOT NULL,
 CONSTRAINT [PK___EFMigrationsHistory] PRIMARY KEY CLUSTERED (MigrationId] ASC) WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]) ON [PRIMARY]
GO

INSERT INTO [dbo].[__EFMigrationsHistory] ([MigrationId] ,[ProductVersion]) VALUES ('00000000000000_CreateIdentitySchema','3.0.0')
GO

Смотри также: https://docs.microsoft.com/en-us/aspnet/core/security/authentication/identity-api-authorization

Ответы [ 2 ]

0 голосов
/ 27 октября 2019

Я нашел следующее, чтобы получить желаемую функциональность:

Добавьте следующее в Startup.cs (проекты .NET Core):

services.Configure<PasswordHasherOptions>(options => options.CompatibilityMode = PasswordHasherCompatibilityMode.IdentityV2);

Миграция базы данных и обновление данных:

UPDATE dbo.AspNetUsers SET NormalizedUserName = UPPER(UserName);

Подробнее см. Здесь: https://github.com/iwhp/AspNetIdentitySideBySide

0 голосов
/ 26 октября 2019

В документации имеется раздел о хранении ключей безопасности.

public void ConfigureServices(IServiceCollection services)
{
    services.AddDataProtection()
        .PersistKeysToFileSystem(new DirectoryInfo(@"c:\temp-keys\"));
}

Создайте ключ или разрешите приложению создать ключ и поделиться им между двумя приложениями, используя эту настройку.

...