Тип: СпособВосстановленияПароляПользователяИнформационнойБазы. Предназначено для выбора способа восстановления пароля.
Полное описание, параметры и ограничения
НастройкиВосстановленияПароля.СпособВосстановленияПароля (PasswordRecoverySettings.PasswordRecoveryMethod)
НастройкиВосстановленияПароля (PasswordRecoverySettings)
СпособВосстановленияПароля (PasswordRecoveryMethod)
Доступен, начиная с версии 8.3.15.
Использование:
Чтение и запись.
Описание:
Тип: СпособВосстановленияПароляПользователяИнформационнойБазы.
Предназначено для выбора способа восстановления пароля.
Доступность:
Сервер, толстый клиент.
Использование в версии:
Доступен, начиная с версии 8.3.15.
Методическая информация
Практические примеры
Подготовить ограничения кода с явной проверкой диапазонов
Четыре параметра имеют разные границы. До присваивания проверяем целые числа и выводим срок в минутах, не путая ожидание повторной отправки с периодом действительности кода.
Где и как запускать
Учебная база: создайте серверный общий модуль УчебныеЗадачи (флаг Сервер). Код без директив вставьте в тело процедуры ВыполнитьПример() Экспорт. Вызовите её из серверного обработчика команды учебной обработки. Не запускайте в рабочей базе.
Подготовка
В отдельной учебной базе 8.5.1.1343 создайте серверный общий модуль УчебныеЗадачи. Фрагмент вставьте внутрь ВыполнитьПример() Экспорт и вызовите своей учебной командой.
Во всех задачах Новый НастройкиВосстановленияПароля создаёт собственный объект в памяти. Код не устанавливает дополнительные параметры информационной базы и не запускает восстановление пароля.
Не подставляйте реальные SMTP-пароли, OAuth-токены, адреса сотрудников и рабочие ссылки. example.invalid — учебный адрес, не настроенный почтовый сервер.
Каждый пример выполняйте отдельно. Вывод и свойства проверяются в сообщениях/отладчике; доставки письма, изменения пароля и открытия сайта не будет.
Проект = Новый НастройкиВосстановленияПароля;
Проект.СпособВосстановленияПароля = СпособВосстановленияПароляПользователяИнформационнойБазы.Нет;
ДлинаКода = 10;
СрокСекунд = 900;
ОжиданиеСекунд = 60;
ЧислоПопыток = 5;
Если ДлинаКода <> Цел(ДлинаКода) Или ДлинаКода < 8 Или ДлинаКода > 50 Тогда
ВызватьИсключение "Длина кода: целое число от 8 до 50";
КонецЕсли;
Если СрокСекунд <> Цел(СрокСекунд) Или СрокСекунд < 1 Или СрокСекунд > 4294967295 Тогда
ВызватьИсключение "Срок действия: целое число секунд от 1 до 4294967295";
КонецЕсли;
Если ОжиданиеСекунд <> Цел(ОжиданиеСекунд) Или ОжиданиеСекунд < 1 Или ОжиданиеСекунд > 999999999 Тогда
ВызватьИсключение "Блокировка повторного запроса: целое число секунд от 1 до 999999999";
КонецЕсли;
Если ЧислоПопыток <> Цел(ЧислоПопыток) Или ЧислоПопыток < 1 Или ЧислоПопыток > 999 Тогда
ВызватьИсключение "Число неуспешных попыток: целое число от 1 до 999";
КонецЕсли;
Проект.ДлинаКодаПодтверждения = ДлинаКода;
Проект.СрокДействияКодаПодтверждения = СрокСекунд;
Проект.ДлительностьБлокировкиЗапросаОбновленияКодаПодтверждения = ОжиданиеСекунд;
Проект.МаксимальноеКоличествоНеуспешныхПопытокПроверкиКодаПодтверждения = ЧислоПопыток;
Сообщить(Проект.ДлинаКодаПодтверждения = 10);
Сообщить(Проект.СрокДействияКодаПодтверждения / 60 = 15);
Сообщить(Проект.ДлительностьБлокировкиЗапросаОбновленияКодаПодтверждения = 60);
Сообщить(Проект.МаксимальноеКоличествоНеуспешныхПопытокПроверкиКодаПодтверждения = 5);Разбор по шагам
Все входные значения в этой задаче собственные числа. Для ввода из формы дополнительно проверьте тип до вызова Цел.
Отдельно проверяем дробность и границы каждого значения; отрицательные, нулевые и выходящие за границы значения не присваиваются.
900 секунд — 15 минут действия кода; 60 секунд — ожидание следующего запроса. Это две разные шкалы.
Длина 10, срок 900, ожидание 60 и попытки 5 выбраны для упражнения, не для автоматического применения в рабочей системе.
Как проверить результат
Четыре сравнения Истина.
Замените только ДлинаКода на 7 либо 10.5 и перезапустите: ожидается собственное понятное исключение до присваивания.
Повторите с ЧислоПопыток=0: причина должна относиться именно к числу попыток.
Ожидаемый результат
Подготовлен проверенный локальный проект с раздельными единицами и ограничениями.
На что обратить внимание
Не сокращайте ограничения без анализа безопасности и требований конкретной системы.
Эти проверки не доказывают защиту от внешнего перебора: реальное восстановление пароля не запущено.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.
Исследовать документированные значения проекта восстановления пароля
Проверяем семь указанных в помощнике значений по умолчанию. Способ Нет задаём сами: его исходное значение справка конструктора не обещает.
Где и как запускать
Учебная база: создайте серверный общий модуль УчебныеЗадачи (флаг Сервер). Код без директив вставьте в тело процедуры ВыполнитьПример() Экспорт. Вызовите её из серверного обработчика команды учебной обработки. Не запускайте в рабочей базе.
Подготовка
В отдельной учебной базе 8.5.1.1343 создайте серверный общий модуль УчебныеЗадачи. Фрагмент вставьте внутрь ВыполнитьПример() Экспорт и вызовите своей учебной командой.
Во всех задачах Новый НастройкиВосстановленияПароля создаёт собственный объект в памяти. Код не устанавливает дополнительные параметры информационной базы и не запускает восстановление пароля.
Не подставляйте реальные SMTP-пароли, OAuth-токены, адреса сотрудников и рабочие ссылки. example.invalid — учебный адрес, не настроенный почтовый сервер.
Каждый пример выполняйте отдельно. Вывод и свойства проверяются в сообщениях/отладчике; доставки письма, изменения пароля и открытия сайта не будет.
Проект = Новый НастройкиВосстановленияПароля;
Проект.СпособВосстановленияПароля = СпособВосстановленияПароляПользователяИнформационнойБазы.Нет;
Сообщить(Проект.ДлинаКодаПодтверждения = 8);
Сообщить(Проект.СрокДействияКодаПодтверждения = 600);
Сообщить(Проект.ДлительностьБлокировкиЗапросаОбновленияКодаПодтверждения = 30);
Сообщить(Проект.МаксимальноеКоличествоНеуспешныхПопытокПроверкиКодаПодтверждения = 3);
Сообщить(Проект.ПортSMTP = 0);
Сообщить(Проект.АутентификацияПоТокену = ИспользованиеАутентификацииИнтернетПочтыПоТокену.Авто);
Сообщить(Не Проект.ТолькоЗащищеннаяАутентификацияSMTP);
Сообщить(Проект.СпособВосстановленияПароля = СпособВосстановленияПароляПользователяИнформационнойБазы.Нет);Разбор по шагам
Конструктор создаёт новый объект, не читает фактическую настройку рабочей базы.
Длина кода — 8 символов; срок 600 секунд — 10 минут; ожидание повторного запроса 30 секунд; допустимых неуспешных попыток 3.
Порт 0 — условное значение выбора порта по ИспользоватьSSL, а не сетевой порт 0.
Авто относится к выбору токенной аутентификации. Последнее сравнение проверяет наше явное присваивание Нет, не значение конструктора.
Как проверить результат
Восемь сообщений Истина; первые семь относятся к документированным исходным значениям, восьмое к нашему отключению способа.
Не считайте эти числа рекомендацией политики безопасности для вашей организации.
Ожидаемый результат
Проверены исходные параметры нового проекта без чтения секретов и действующей настройки базы.
На что обратить внимание
Новый объект и настройки информационной базы — разные вещи.
Авто не означает, что токен выдан, авторизация прошла или письмо доставлено.
Пример не запускался в вашей базе. Перед применением проверьте его в указанном учебном контексте.