| ||||
| ||||
Вопрос следующий. Имеем контейнер по умолчанию с именем пользователя. Нужно создать новый контейнер с тем же именем (например плановая смена ключей). Для этого нужно удалить старый и создать новый. Но! Если при создании нового контейнера чтото не заладится (ключевой носитель сломался, отказ при вводе и т.д.), то мы остаемся вообще без ключа и откат не возможен (восстановить старый ключ). Как сделать так, чтобы можно было удалить старый контейнер только тогда, когда новый создался корректно. Видится решение - создать контейнер с другим именем, затем удалить старый, а новый переименовать. Или наоборот, старый переименовать и т.д. Но я не нашел таких функций. Не подскажете как это сделать? | ||||
Ответы: | ||||
| ||||
Можно проще. При использовании CSP 2.0 есть кнопочка "Удалить запомненные пароли" на вкладке Сервис нашей панели. Она удаляет из реестра ссылки на контейнеры (каждая из которых содержит имя контейнера и имя носителя). В реестре эти ссылки лежат в разделе HKEY_LOCAL_MACHINE\SOFTWARE\Crypto Pro\Settings\USERS\<SID пользователя>\KeyDevices\passwords Можно удалить вручную. | ||||
| ||||
Кнопочки нажимать нельзя - все должно быть програмно... Т.е., как я понял, ищем в реестре запись по старому контейнеру, запоминаем, стираем, создаем новый контейнер и, если облом, восстанавливаем в реестре запись по старому контейнеру? Только такой способ не универсален для любого CSP, а подходит только для КриптоПро, что не очень красиво. | ||||
| ||||
1. Эту запись в реестре о контейнере можно не запоминать и не восстанавливать. Она вспомогательная, для ускорения процедуры поиска контейнера по его имени. 2. Универсальности для разных CSP по-любому будет мало. Например, если поломается содержимое контейнера MS CSP или GemPlus CSP, то может случиться, что Вы не сможете его удалить средствами CryptoAPI. | ||||