#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
не работают.
То, что я делаю, это:
- Установка как NormalizedUserName, так и NormalizedEmail в верхний регистр
- Установка случайного идентификатора GUID для метки безопасности
- Я обрабатываю первоначальный пароль на стороне клиента.
Что еще я должен делать?
Комментарии:
1. Определить «не работает» ?
2. @CaiusJard Возвращает значение null
3. Пожалуйста, опубликуйте код, чтобы воспроизвести это, чтобы мы могли сделать это на наших машинах и отладить его
4. @CaiusJard На самом деле нет другого кода, кроме FindByNameAsync. Если я создам пользователя с помощью UserManager. NewUserAsync, это работает, если я вставляю пользователя через базу данных, это не так.
5. Затем вы сделали что-то отличное от того, что делает NewUserAsync. Возможно, он также вставляет в другую таблицу (роли?) а затем внутренний присоединяется к данным. Если вы пропустите вторую вставку, никакие строки не появятся