@evk, разве это не риск хранить ключ в статическом файле, где IIS представляет его публично (я имею в виду, что IIS_USR или владелец пула приложений должен иметь явный доступ для выполнения файловых операций в указанном месте) ??

ользую ядро ​​dotnet для создания приложения, которое работает в кластере Kubernetes на хостах Linux. Когда я тестировал, он заметил получение исключений при проверке токенов CSRF, это имеет смысл, поскольку я еще не редактировал машинный ключ, чтобы он был одинаковым для каждого экземпляра. Когда я приступил к установке машинного ключа в web.config, я заметил, что это больше не будет работать в .Net Core.

Теперь, когда используется API DataProtection, ключ компьютера больше не работает. Я попытался внедрить API в свое приложение, но когда я прочитал, мне нужно было использовать сетевой ресурс для обмена ключами между всеми экземплярами, которые я был ошеломлен. Конечно, должен быть более простой (и лучший) способ сделать это, не полагаясь на долю, чтобы быть онлайн, верно?

я попытался установить следующее в классе запуска в методе ConfigureServices:

services.AddDataProtection().SetApplicationName("DockerTestApplication");

Я как-то ожидал, что ключи будут сгенерированы с использованием имени приложения, но это не решило проблему.

Я нашел несколько интересных документов, которые все используют код, который больше не будет компилироваться, я думаю, что Microsoft изменила некоторые вещи:

https://docs.microsoft.com/en-us/aspnet/core/security/data-protection/compatibility/replacing-machinekey

Кто-нибудь знает решение этой проблемы, которое также будет работать в Linux и может совместно использовать токены по сети между экземплярами?

Заранее спасибо!

Ответы на вопрос(1)

Ваш ответ на вопрос