У меня есть два основных API asp.net, которые должны использовать одну и ту же защиту данных.
(В основном для токена защиты от подделки мы хотим, чтобы приложение A могло отправлять сообщения в приложение B).
Я знаю, что мне нужно установить общее имя приложения (как объяснено в этом ответе SO и , это работает.
var di = new DirectoryInfo(cryptoKeysLocation);
services
.AddDataProtection()
.SetApplicationName("mywebapps")
.PersistKeysToFileSystem(di)
Однако, как только я добавляю сертификат для шифрования ключа, я получаю CryptographicException.
Когда я смотрю на место для хранения криптографических ключей, я вижу, что теперь созданы дубликаты ключей ... больше не только один ключ.
Похоже, этот дополнительный ProtectKeysWithCertificate делает невозможным обмен ключами между приложениями?
Или я здесь упускаю еще один важный шаг?
var di = new DirectoryInfo(cryptoKeysLocation);
services
.AddDataProtection()
.SetApplicationName("mywebapps")
.PersistKeysToFileSystem(di)
.ProtectKeysWithCertificate(new X509Certificate2(certpfx, certpwd));