2 378 документов
← К списку

ЗаписатьДанныеВБезопасноеХранилище

страница

Записывает конфиденциальные данные в безопасное хранилище. Вызывающий код должен самостоятельно устанавливать привилегированный режим. Безопасное хранилище недоступно для чтения пользователям (кроме администраторов), а доступно только коду, который делает обращения только к своей части данных и в том контексте, который предполагает чтение или запись конфиденциальных данных.

Синтаксис

Процедура ЗаписатьДанныеВБезопасноеХранилище(Владелец, Данные, Ключ = "Пароль") Экспорт

Параметры

  • Владелец — ПланОбменаСсылка
    • СправочникСсылка
    • Строка - ссылка на объект информационной базы, представляющий объект-владелец сохраняемого пароля или строка до 128 символов. Для объектов других типов в качестве владельца рекомендуется использовать ссылку на элемент метаданных этого типа в справочнике ИдентификаторыОбъектовМетаданных или ключ в виде строки с учетом имен подсистем. Например, для БСП: Владелец = ОбщегоНазначения.ИдентификаторОбъектаМетаданных("РегистрСведений.АдресныеОбъекты"); если нужно 1 хранилище на подсистему БСП: Владелец = "СтандартныеПодсистемы.УправлениеДоступом"; если нужно более 1 хранилища на подсистему БСП: Владелец = "СтандартныеПодсистемы.УправлениеДоступом.<Уточнение>";
  • Данные — Произвольный - данные помещаемые в безопасное хранилище. Неопределенно - удаляет все данные. Для удаления данных по ключу следует использовать процедуру УдалитьДанныеИзБезопасногоХранилища.
    • Структура - если параметр Ключ содержит Неопределено. Подробнее см. описание параметра Ключ
  • Ключ — Строка - ключ сохраняемых настроек, по умолчанию "Пароль". Ключ должен соответствовать правилам имен идентификаторов:
    1. Первым символом ключа должна быть буква или символ подчеркивания (_).
    2. Каждый из последующих символов может быть буквой, цифрой или символом подчеркивания (_).
  • Неопределено — для добавления набора данных структурой, где ключ структуры - это имя ключа данных, а значение - сохраняемые данные. Пример использования см. ниже.

Пример вызова

Процедура ПриЗаписиНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)
    Если ТекущийПользовательМожетИзменятьПароль Тогда
        УстановитьПривилегированныйРежим(Истина);
        ОбщегоНазначения.ЗаписатьДанныеВБезопасноеХранилище(ТекущийОбъект.Ссылка, Логин, "Логин");
        ОбщегоНазначения.ЗаписатьДанныеВБезопасноеХранилище(ТекущийОбъект.Ссылка, Пароль);
        УстановитьПривилегированныйРежим(Ложь);
    КонецЕсли;
КонецПроцедуры
Процедура ПриЗаписиНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)
    Если ТекущийПользовательМожетИзменятьПароль Тогда
        ЛогинИПароль = Новый Структура;
        ЛогинИПароль.Вставить("Логин", Логин);
        ЛогинИПароль.Вставить("Пароль", Пароль);
        УстановитьПривилегированныйРежим(Истина);
        ОбщегоНазначения.ЗаписатьДанныеВБезопасноеХранилище(ТекущийОбъект.Ссылка, ЛогинИПароль, Неопределено);
        УстановитьПривилегированныйРежим(Ложь);
    КонецЕсли;
КонецПроцедуры

Доступность

Сервер, Толстый клиент, Внешнее соединение