ASP. NET Ключ защиты данных CORE сохранен в Azure Не удается снять защиту для отладки по сравнению с выпуском или опубликованным режимом - PullRequest
0 голосов
/ 09 января 2020

Мне нужен общий ключ DataProtection для моего проекта ASP. NET Core Web Apps и Web API.

Данные, защищенные приложением, которые я создаю для режима отладки, против режима выпуска и данные, которые создается непосредственно в опубликованном веб-API, как-то не может быть последовательно незащищенным. Я получаю сообщение об ошибке при снятии защиты «Полезная нагрузка недействительна» или «Брелок не найден»

Ранее я использовал PersistKeysToLocalFileSystem и создал 2 разных ключа для Web App и Web Api .., так что ошибка имела смысл, потому что Я использовал вспомогательные ключи для защиты и снятия защиты.

Но позже я переместил ключ. xml в Azure Хранилище BLOB-объектов и по-прежнему получаю сообщение об ошибке, если я переключаюсь с режима отладки на выпуск или если я хочу для отладки данных, созданных с помощью опубликованного веб-приложения.

Запуск веб-приложения

        CloudStorageAccount cloudStorageAccount = CloudStorageAccount.Parse(StringHelper.SecureStringToString("connectionstring"));
        CloudBlobClient cloudBlobClient = cloudStorageAccount.CreateCloudBlobClient();
        CloudBlobContainer blobContainer = cloudBlobClient.GetContainerReference("protection");
        services.AddDataProtection()
            .PersistKeysToAzureBlobStorage(blobContainer.GetBlockBlobReference("protectionkey"))
            .SetDefaultKeyLifetime(TimeSpan.FromDays(730)); // Exipres in 2 years

Запуск веб-API

CloudStorageAccount cloudStorageAccount = CloudStorageAccount.Parse(StringHelper.SecureStringToString("connectionstring"));
            CloudBlobClient cloudBlobClient = cloudStorageAccount.CreateCloudBlobClient();
            CloudBlobContainer blobContainer = cloudBlobClient.GetContainerReference("protection");
            services.AddDataProtection()
                .PersistKeysToAzureBlobStorage(blobContainer.GetBlockBlobReference("protectionkey"))
                .SetDefaultKeyLifetime(TimeSpan.FromDays(730)); // Exipres in 2 years

В обоих проектах используется один и тот же ключ!

Почему централизованный ключ. xml, сохраняемый в Azure blob, зависит от конфигурации времени выполнения asp . net основное веб-приложение?

Как мы можем решить эту проблему, чтобы я мог получить доступ к данным в разных конфигурациях?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...