ключ недействителен для использования в указанном состоянии - PullRequest
4 голосов
/ 30 мая 2011

мы используем CNG для шифрования некоторых наших конфиденциальных данных.Как стандарт, мы реализуем интегрированную безопасность SQL вместо использования пользователя SQL с разрешениями БД.Чтобы реализовать это, мы определяем идентификатор пула приложения как тот же идентификатор Active Directory, которому даны соответствующие разрешения БД.

Теперь проблема в том, что мой AppPool работает под локальной системой, но я могу создавать и извлекать ключи из хранилища ключей CNG, однако, когда я изменяю это удостоверение на пользователя активного каталога, я начинаю получать «Ключ недействителен для использования».в указанном состоянии ", когда я пытаюсь получить ключи из магазина CNG.Вот некоторые из наших наблюдений:

  • Чтобы внедрить CNG на уровне пользователя, мы должны иметь возможность создавать ключи уровня CNG на уровне пользователя вместо ключей машины.мы сделали это, и ключи уровня пользователя создаются успешно, мы можем видеть это в UserProfile - C: \ Users \ ADusername \ AppData \ Roaming \ Microsoft \ Crypto \ Keys

    • Мы установили«LoadUserProfile = True» в настройках пула.
    • Мы дали разрешение на чтение / изменение пользователю AD и для временных файлов% windows% \ Microsoft.Net \ Framework \ Asp.Net

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

1 Ответ

1 голос
/ 21 октября 2015

Я знаю, что это более старый вопрос, но я решил опубликовать предложение. Я пытался запустить существующее приложение на локальном IIS с пулом приложений, работающим под кредитами AD, и получал то же исключение при вызове .ToXmlString (true) для объекта RSACryptoServiceProvider.

Как я решил эту проблему, я просто повторно импортировал ключ на мой локальный компьютер и поставил флажок «Пометить этот ключ как экспортируемый».

...