@evk, разве это не риск хранить ключ в статическом файле, где IIS представляет его публично (я имею в виду, что IIS_USR или владелец пула приложений должен иметь явный доступ для выполнения файловых операций в указанном месте) ??
ользую ядро dotnet для создания приложения, которое работает в кластере Kubernetes на хостах Linux. Когда я тестировал, он заметил получение исключений при проверке токенов CSRF, это имеет смысл, поскольку я еще не редактировал машинный ключ, чтобы он был одинаковым для каждого экземпляра. Когда я приступил к установке машинного ключа в web.config, я заметил, что это больше не будет работать в .Net Core.
Теперь, когда используется API DataProtection, ключ компьютера больше не работает. Я попытался внедрить API в свое приложение, но когда я прочитал, мне нужно было использовать сетевой ресурс для обмена ключами между всеми экземплярами, которые я был ошеломлен. Конечно, должен быть более простой (и лучший) способ сделать это, не полагаясь на долю, чтобы быть онлайн, верно?
я попытался установить следующее в классе запуска в методе ConfigureServices:
services.AddDataProtection().SetApplicationName("DockerTestApplication");
Я как-то ожидал, что ключи будут сгенерированы с использованием имени приложения, но это не решило проблему.
Я нашел несколько интересных документов, которые все используют код, который больше не будет компилироваться, я думаю, что Microsoft изменила некоторые вещи:
Кто-нибудь знает решение этой проблемы, которое также будет работать в Linux и может совместно использовать токены по сети между экземплярами?
Заранее спасибо!