Кажется, тут сразу три независимые вещи, которые часто хранят раздельно:
1. Собственно настройки
Их удобнее всего хранить в appsettings.json, который можно спокойно закоммитить в репозиторий.
В коде можно получить к ним доступ через IConfiguration или IOptions
2. Секреты (пароли, токены, итд)
Строку подключения в общем то решил захардкодить.
Остается имя админа и пароль + почта.
Их лучше в репозитории не хранить.
Благо IConfiguration можно наслаивать и прокидывать секреты через переменные окружения, например, или использовать какой-нибудь Vault или keyring.
Уже упомянутый диспетчер секретов можно использовать только для разработки, но не для прода.
3. Фича-флаги.
Дальше динамическая смена настроек как то:
OAUTH авторизация, которую выключать и включать можно.
Их часто хранят в базе данных, да. Есть также несколько уже готовых решению для удобного управления фича флагами.
Гуглить feature flags.
https://learn.microsoft.com/en-us/azure/azure-app-...
4. Если есть конфиги, которые нужно менять на лету, то тут нужно уже смотреть, как именно нужно отрабатывать изменение конфигов.
Например мы храним такие конфиги в etcd и явно подписываемся на изменения. В случае изменений - делаем какие-то действия.
В дотнете для работы с такими конфигами есть интерфейс IOptionsMonitor