Назад | Перейти на главную страницу

«Aspnet_regiis -pa» не работает

Я использую защищенную конфигурацию для хранения конфиденциальных данных, зашифрованных в файле Web.config нашего приложения asp.net.
Я выполнил шаги в Пошаговое руководство: создание и экспорт контейнера ключей RSA для генерации и экспорта закрытого ключа.
Я выполнил шаги в Пошаговое руководство: шифрование информации о конфигурации с помощью защищенной конфигурации чтобы зашифровать раздел файла Web.config с помощью этого ключа.

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

я иметь смог заставить эту штуку работать на компьютере коллеги, работающем под управлением Windows 8. И aspnet_regiis -pi команда (импорт закрытого ключа) и aspnet_regiis -pa (предоставление доступа к закрытому ключу) там работало без проблем.

В тестовой среде под управлением Windows 7 мне удалось успешно импортировать закрытый ключ в контейнер ключей, используя aspnet_regiis -pi <KeyContainer> <KeyFile>.
Но когда я пытаюсь aspnet_regiis -pa <KeyContainer> <account-name>, команда просто перечисляет параметры командной строки. Это не означает неудачу или успех.

Все эти среды используют .Net Framework v4.

Я посмотрел на этот вопрос, но разница в том, что я смог выполнить aspnet_regiis -pi <KeyContainer> <KeyFile>. Не имело значения и выполнение aspnet_regiis -lk как предлагается там.

Возникает вопрос: как я могу предоставить приложению доступ к содержимому Key Container, чтобы оно могло расшифровать Web.config? Почему aspnet_regi действует так, как будто параметр «-pa» не существует, а не выдает мне сообщение «Успешно» или «Неудачно»?

Оказалось, что мы использовали неправильную версию aspnet_regiis.

Мы вызвали aspnet_regiis из %Windows%\Microsoft.Net\Framework\v4.0.30319 каталог.
При звонке из %Windows%\Microsoft.Net\Framework64\v4.0.30319, 64-битная версия, команда сообщила об успешном выполнении.

Тем не менее, сообщение об ошибке было бы полезным ...

РЕДАКТИРОВАТЬ:
Кажется, что контейнер ключей недоступен, если у вас нет профиля пользователя. Когда на другом сервере мы разрешили учетной записи, которая использовала «Вход в качестве службы», доступ к контейнеру ключей, это не удалось - даже если она была в группе администраторов. Когда мы вошли в систему физически, создавая при этом профиль пользователя, контейнер ключей сделал становятся доступными.