Сохраняет сериализуемые данные по ключу в защищенное хранилище, доступ к которому можно получить в соответствии с переданным параметром доступа. Если элемент с переданным значением ключа существует, то данные по этому ключу заменяются. Если размер помещаемых ключа и данных после сериализации превышает максимальную длину одной записи, то генерируется исключение с текстом "Размер переданных для сохранения данных превышает максимально возможную длину". Ограничения на размер записи: Android – нет; iOS – 16 МБ; Windows Phone – 16 КБ. Если при помещении данных в хранилище не хватает памяти, то генерируется исключение с текстом "Память безопасного хранилища заполнена. Невозможно сохранить данные". Ограничения на размер хранилища: Android – нет; iOS – 80 МБ; Windows Phone – 320 КБ. Если при помещении данных в хранилище достигнут предел количества, то генерируется исключение с текстом "Достигнут предел количества записей в безопасном хранилище. Невозможно сохранить данные". Ограничения на количество записей: Android – нет; iOS – нет; Windows Phone – 20. Вызов метода не блокирует исполнение кода языка, все результаты возвращаются в переданный обработчик оповещения. Помещение данных производится в соответствии с переданным способом защиты доступа (может потребоваться проверка пользователя или разблокировка экрана). Если <СпособЗащитыДоступа> имеет значение ТребуетсяДополнительнаяПроверкаПользователя, то в среде Windows Runtime потребуется проверка пользователя вводом пароля или отпечатк
Синтаксис
НачатьПомещениеДанных(<Ключ>, <Данные>, <СпособЗащитыДоступа>, <СпособПроверки>, <Обработчик>)Полное описание, параметры и ограничения
МенеджерБезопасногоХранилища.НачатьПомещениеДанных (SecureStorageManager.BeginPutData)
МенеджерБезопасногоХранилища (SecureStorageManager)
НачатьПомещениеДанных (BeginPutData)
Доступен, начиная с версии 8.3.15.
Синтаксис:
НачатьПомещениеДанных(<Ключ>, <Данные>, <СпособЗащитыДоступа>, <СпособПроверки>, <Обработчик>)
Параметры:
<Ключ> (обязательный)
Тип: Строка.
Ключ, по которому сохраняются данные.
<Данные> (обязательный)
Тип: Произвольный.
Данные, которые требуется защитить в рамках приложения (логины или пароли). Используется внутренняя сериализация.
Внимание! Значение данного параметра не может быть типа Неопределено.
<СпособЗащитыДоступа> (обязательный)
Тип: СпособЗащитыДоступаБезопасногоХранилища.
Используемый способ защиты доступа.
<СпособПроверки> (обязательный)
Тип: СпособПроверкиПодписиМобильногоКлиента.
Используемый способ проверки пользователя.
Актуален только если используется способ защиты доступа ТребуетсяДополнительнаяПроверкаПользователя, в противном случае игнорируется.
Значение по умолчанию: БиометрическаяИлиВводПароля.
<Обработчик> (обязательный)
Тип: ОписаниеОповещения.
Содержит описание процедуры, которая будет вызвана после помещения данных со следующими параметрами:
<ОтмененоПользователем> - тип Булево.
<Ключ> - тип Строка. Переданный ключ.
<ДополнительныеПараметры> - значение, которое было указано при создании объекта ОписаниеОповещения.
При возникновении ошибки во время выполнения процедуры, будет вызван обработчик ошибки.
Описание:
Сохраняет сериализуемые данные по ключу в защищенное хранилище, доступ к которому можно получить в соответствии с переданным параметром доступа. Если элемент с переданным значением ключа существует, то данные по этому ключу заменяются.
Если размер помещаемых ключа и данных после сериализации превышает максимальную длину одной записи, то генерируется исключение с текстом "Размер переданных для сохранения данных превышает максимально возможную длину". Ограничения на размер записи:
Android – нет;
iOS – 16 МБ;
Windows Phone – 16 КБ.
Если при помещении данных в хранилище не хватает памяти, то генерируется исключение с текстом "Память безопасного хранилища заполнена. Невозможно сохранить данные". Ограничения на размер хранилища:
Android – нет;
iOS – 80 МБ;
Windows Phone – 320 КБ.
Если при помещении данных в хранилище достигнут предел количества, то генерируется исключение с текстом "Достигнут предел количества записей в безопасном хранилище. Невозможно сохранить данные". Ограничения на количество записей:
Android – нет;
iOS – нет;
Windows Phone – 20.
Вызов метода не блокирует исполнение кода языка, все результаты возвращаются в переданный обработчик оповещения. Помещение данных производится в соответствии с переданным способом защиты доступа (может потребоваться проверка пользователя или разблокировка экрана).
Если <СпособЗащитыДоступа> имеет значение ТребуетсяДополнительнаяПроверкаПользователя, то в среде Windows Runtime потребуется проверка пользователя вводом пароля или отпечатком пальца. Операция проверки пользователя может быть отменена пользователем.
Доступность:
Мобильный клиент, мобильное приложение (клиент).
См. также:
МенеджерБезопасногоХранилища, метод ПоместитьДанныеАсинх
Использование в версии:
Доступен, начиная с версии 8.3.15.
Описание изменено в версии 8.3.18.
Методическая информация
Практические примеры
Синтаксис мобильного безопасного хранилища с настоящим callback
Ограниченный синтаксис операции и полного callback для своей мобильной формы.
Где и как запускать
Модуль собственной мобильной формы: &НаКлиенте.
Подготовка
Своя мобильная управляемая форма: НовыйКлючХранилища — строковый реквизит с действительно новым неиспользованным учебным ключом. Существующий ключ заменяется, поэтому не используйте ключ своих реальных паролей.
Устройство должно поддерживать безопасное хранилище и дополнительную проверку пользователя. Весь блок помещается в модуль формы, кнопка вызывает ПоместитьУчебныеДанные; содержимое данных не выводится.
&НаКлиенте
Процедура ПоместитьУчебныеДанные()
Оповещение = Новый ОписаниеОповещения("ПослеПомещения", ЭтотОбъект, "Учебные данные", "ОшибкаПомещения", ЭтотОбъект);
БезопасноеХранилище.НачатьПомещениеДанных(НовыйКлючХранилища, "6;250",
СпособЗащитыДоступаБезопасногоХранилища.ТребуетсяДополнительнаяПроверкаПользователя,
СпособДополнительнойПроверкиПользователя.БиометрическаяИлиВводПароля, Оповещение);
КонецПроцедуры
&НаКлиенте
Процедура ПослеПомещения(ОтмененоПользователем, Ключ, ДополнительныеПараметры) Экспорт
Сообщить(ДополнительныеПараметры + "; отменено: " + Строка(ОтмененоПользователем));
Сообщить("Длина переданного ключа: " + Строка(СтрДлина(Ключ)));
КонецПроцедуры
&НаКлиенте
Процедура ОшибкаПомещения(Ошибка, ДополнительныеПараметры) Экспорт
Сообщить(ДополнительныеПараметры + "; операция не подтверждена; тип ошибки: " + Строка(ТипЗнч(Ошибка)));
КонецПроцедурыРазбор по шагам
Укажите новый собственный ключ и синтетические данные.
Инициируйте неблокирующую операцию с описанием обработчиков.
Дождитесь настоящего callback либо ошибки; не вызывайте его вручную.
Как проверить результат
Отмените проверку пользователя и наблюдайте ОтмененоПользователем.
Успешный callback и ошибка — разные исходы; при ошибке не повторяйте помещение автоматически.
Ожидаемый результат
Ограниченный синтаксис операции и полного callback для своей мобильной формы.
На что обратить внимание
В установленной справке четвертый параметр ошибочно или противоречиво объявлен СпособПроверкиПодписиМобильногоКлиента, хотя текст задает БиометрическаяИлиВводПароля. Этот существующий элемент принадлежит СпособДополнительнойПроверкиПользователя; фрагмент требует целевой проверки и не объявлен доказанным runtime. Помещение действительно сохраняет данные устройства.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.