| ||||
| ||||
Скажите пожалуйста, где сохраняется пороль, когда я выбираю "Save password" при вводе пароля на доступ к ключевому носителю (в частности дискете) и как это сделать программно (установить или запретить такую опцию)? Спасибо. | ||||
Ответы: | ||||
| ||||
В версии 1.1 пароль сохраняется в ключе реестра REG_SZ: HKEY_LOCAL_MACHINE\SOFTWARE\Crypto Pro\Settings\Users\SID\KeyDevices\softpasswd запретить снимать или удалять эту опцию нельзя. Можно насильно удалять пароль после его ввода, если Вы хотите запретить сохранение пароля, выход конечно не очень хороший. Для того чтобы однократно снять флаг можно воспользоваться контрольной панелью "Настроить носитель по умолчанию" В версии 1.2(2.0) пароль храниться для каждого ключа отдельно. Запретить сохранение пароля в окне CSP то же никак нельзя, но можно сделать собственное окно ввода пароля без возможности сохранения пароля в реестре. Для этого после открытия контейнера надо установить пароль (введенный в Вашем окне) функцией CryptSetProvParam c PP_KEYEXCHANGE_PIN. | ||||
| ||||
Меня интересует именно как сделать так, чтобы если пользователь при вводе пароля поставил флаг его сохранения, то как я могу программно (в версии 1.2) сделать чтобы в следующий раз диалог опять появлялся. Т.е. в нашем ПО должна быть такой сервис, как сбросить этот флаг. А то получится, что если пользователь один раз нажал этот флаг то больше он никогда не сможет изменить своего решения не вводить пароль. Я не могу перекрыть ваш интерфейс (хотя очень бы хотелось, и может это и можно?) т.к. я использую MSSOAP которому на входе я указываю имя сертификата в персональном хранилище: soapClient->ConnectorProperty["SSLClientCertificateName"] = "Valentin"; MSSOAP сам открывает провайдер и я не могу указать PP_KEYEXCHANGE_PIN ;( или есть такая возможность? Спасибо. | ||||
| ||||
Сброс всех запомненных в реестре паролей есть в Контрольной панели: Сервис / Удалить запомненные пароли. Пароли в 1.2 хранятся в REG_SZ: HKEY_LOCAL_MACHINE\SOFTWARE\Crypto Pro\Settings\Users\<SID>\KeyDevices\passwords\<media>\<container>\passwd, где SID - SID текущего пользователя, <media> тип носителя, <container> - имя контейнера. | ||||