Я прошел через Identity Server 4 QuickStart для использования Entity Framework для постоянного хранения конфигурации и рабочих данных. В QuickStart ApiResources загружаются в базу данных в виде кода. Секрет Api устанавливается с
new ApiResource("api1", "My API")
{
ApiSecrets = { new Secret("secret".Sha256())}
}
в конструкторе ApiResource. Когда в Startup.InitializeDatabase этот ApiResource добавляется в ConfigurationDbContext.ApiResources DbSet,
foreach(var resource in Config.GetApiResources())
{
context.ApiResources.Add(resource.ToEntity());
}
context.SaveChanges();
запись в дочерней таблице ApiSecrets содержит читаемое текстовое значение в поле ApiSecrets.Value.
K7gNU3sdo+OL0wNhqoVWhr3g6s1xYv72ol/pe/Unols=
Я хотел бы управлять своими данными конфигурации с помощью сценариев SQL, но я не могу понять, как правильно установить ApiSecrets.Value. Я пытался использовать T-SQL HASHBYTES ('SHA2_256', 'secret'), но это приводит к нечитаемому (я думаю, двоичному) значению в ApiSecrets.Value. Есть ли способ правильно установить хешированный секрет через T-SQL?