У меня есть приложение, построенное на подходе Code-First Entity Framework.Из-за того, что это унаследованное приложение, я не буду вдаваться во все сложные детали, так как у меня нет ответов на все вопросы.
Но он использует то, что кажется гибридным подходом использования ASP.NET Identity и некоторые другие внутренние методы аутентификации пользователя.
Я искал, но не могу найти разумного решения этой ошибки:
Свойство 'PasswordHash' в 'IdentityUser`4 'не может быть установлено значение' System.Byte [] '.Необходимо установить для этого свойства ненулевое значение типа 'System.String'.
Ошибка возникает в свойстве Password Hash, когда приложение вызывает метод CreateIdentityAsync
объекта Identity.Frameworks UserManager
Свойство определено как строка, но фактическое значение хэша пароля, хранящееся в таблице базы данных, равно Binary(64)
.
Я пробовал этот подход, но ошибкато же самое:
var pwdHsh = Convert.ToBase64String((byte[])sqlReader["PasswordHash"])
PasswordHash = pwdHsh
Каков подходящий способ получить двоичный код (64), который фактически извлекается как байтовый массив из SQL, в строковый формат, который был бы приемлемым ???
Я только определил еще один пост, относящийся к этой проблеме
Как проанализировать пароль в varbinary из базы данных в строку IdentityUser в Web Api Authentication
, но былиответы не предоставлены.