Значения для столбцов в ASP.NET Идентичность при создании вручную

#c# #asp.net #sql-server #asp.net-identity

Вопрос:

После инициализации базы данных я хочу вручную добавить начальную строку в AspNetUsers :

 insert AspNetUsers 
(UserId,PersonId,UserName,NormalizedUserName,Email,NormalizedEmail,EmailConfirmed,PasswordHash,SecurityStamp,ConcurrencyStamp,PhoneNumber,PhoneNumberConfirmed,TwoFactorEnabled,LockoutEnd,LockoutEnabled,AccessFailedCount) values
(@userIdOut,@personIdOut,@adminUserName,upper(@adminUserName),@AdminEmail,upper(@AdminEmail),@true,null,newid(),null,@AdminPhone,@true,@false,null,@false,0)
 

Однако, когда я это делаю, такие методы, как FindByNameAsync не работают.

То, что я делаю, это:

  1. Установка как NormalizedUserName, так и NormalizedEmail в верхний регистр
  2. Установка случайного идентификатора GUID для метки безопасности
  3. Я обрабатываю первоначальный пароль на стороне клиента.

Что еще я должен делать?

Комментарии:

1. Определить «не работает» ?

2. @CaiusJard Возвращает значение null

3. Пожалуйста, опубликуйте код, чтобы воспроизвести это, чтобы мы могли сделать это на наших машинах и отладить его

4. @CaiusJard На самом деле нет другого кода, кроме FindByNameAsync. Если я создам пользователя с помощью UserManager. NewUserAsync, это работает, если я вставляю пользователя через базу данных, это не так.

5. Затем вы сделали что-то отличное от того, что делает NewUserAsync. Возможно, он также вставляет в другую таблицу (роли?) а затем внутренний присоединяется к данным. Если вы пропустите вторую вставку, никакие строки не появятся