infostart-hub / toolkit

Infostart Toolkit
https://infostart.ru/marketplace/toolkit/
74 stars 7 forks source link

Ошибка при запустить под пользователем при возврате настроек. #1019

Closed deni-tda closed 2 weeks ago

deni-tda commented 3 weeks ago
  1. Воспроизведение ошибки НСИ и администрирование – Настройки пользователей и прав – Настройки входа. Ошибка воспроизведется при настройке: «Запретить повторение пароля среда последних» = Да; И Значение > 1, в данном случае = 3.

изображение

На примере пользователя – у пользователя включена только Аутентификация ОС, стандартная аутентификация отключена:

изображение

Используем обработку Пользователи (Toolkit), заходим под пользователем– Запустить под пользователем - Запуск. изображение

Происходит вход под пользователем. Если в окне запуска нажать «Закрыть», то в момент закрытия окна возникает служебное сообщение:

изображение

В журнале регистрации появляется ошибка:

изображение

Затем в карточке пользователя, под которым выполняется вход, устанавливается стандартная аутентификация и появляется предупреждение в верхней части формы:

изображение

  1. Сценарий тестирования Пользователь с правами администратора. Выполняется настройка: НСИ и администрирование – Настройки пользователей и прав – Настройки входа. «Запретить повторение пароля среда последних» = Да; И Значение = 3.

При входе под пользователями не возникает ошибок в журнале регистрации, служебных сообщений в окне запуска под пользователем. Стандартная аутентификация не остается включенной после входа под пользователем.

deni-tda commented 3 weeks ago

Нашли решение проблемы Может и не самое красивое, но работает обработка: ИТК_Пользователи Форма: ЗапускПодПользователем
Функция ПодменитьДанныеАвторизации

Функция ПодменитьДанныеАвторизации(УникальныйИдентификаторПользователя)

ПользовательИБ = ПользователиИнформационнойБазы.НайтиПоУникальномуИдентификатору(УникальныйИдентификаторПользователя);

Результат = Новый Структура;
Результат.Вставить("УникальныйИдентификатор", ПользовательИБ.УникальныйИдентификатор);
Результат.Вставить("АутентификацияСтандартная", ПользовательИБ.АутентификацияСтандартная);
Результат.Вставить("ЗапрещеноИзменятьПароль", ПользовательИБ.ЗапрещеноИзменятьПароль);
Результат.Вставить("СохраняемоеЗначениеПароля", ПользовательИБ.СохраняемоеЗначениеПароля);

ПользовательИБ.АутентификацияСтандартная = Истина;
ПользовательИБ.ЗапрещеноИзменятьПароль = Истина;

    //++ТДА 24.10.2024 Обход ошибки при настройке  "Запрет повторения пароля среди последних - "
Если ПользователиСлужебныйПовтИсп.Настройки().ОбщиеНастройкиВхода Тогда

НастройкиВхода = ПользователиСлужебный.НастройкиВхода();    
КолВоПовторений=1; 
Пароль="Qwerty123456789!";
Пока КолВоПовторений<=НастройкиВхода.Пользователи.ЗапретитьПовторениеПароляСредиПоследних Цикл
    Пароль=Пароль+Строка(КолВоПовторений);
    ХешированиеДанных = Новый ХешированиеДанных(ХешФункция.SHA1);
    ХешированиеДанных.Добавить(Пароль);

    СохраняемоеЗначениеПароля = Base64Строка(ХешированиеДанных.ХешСумма);

    ХешированиеДанных = Новый ХешированиеДанных(ХешФункция.SHA1);
    ХешированиеДанных.Добавить(ВРег(Пароль));

    СохраняемоеЗначениеПароля = СохраняемоеЗначениеПароля + ","
        + Base64Строка(ХешированиеДанных.ХешСумма);
    ПользовательИБ.СохраняемоеЗначениеПароля = СохраняемоеЗначениеПароля; 

    ПользовательИБ.Записать(); 
    КолВоПовторений=КолВоПовторений+1;

КонецЦикла;
КонецЕсли;
//--ТДА

СохраняемоеЗначениеПароля = "UFsxOq/KlPH4n3Txbhh6F6hgG+A=,aQp2yfJ4uMWBrAqjri9wVyXy/M4="; //Это хэш-функция строки "Qwerty123456789!"
ПользовательИБ.СохраняемоеЗначениеПароля = СохраняемоеЗначениеПароля;

ПользовательИБ.Записать();

Возврат Результат;

КонецФункции

Evg-lylyk commented 3 weeks ago

Нашли решение проблемы Может и не самое красивое, но работает обработка: ИТК_Пользователи Форма: ЗапускПодПользователем Функция ПодменитьДанныеАвторизации

Функция ПодменитьДанныеАвторизации(УникальныйИдентификаторПользователя)


ПользовательИБ = ПользователиИнформационнойБазы.НайтиПоУникальномуИдентификатору(УникальныйИдентификаторПользователя);

Результат = Новый Структура;
Результат.Вставить("УникальныйИдентификатор", ПользовательИБ.УникальныйИдентификатор);
Результат.Вставить("АутентификацияСтандартная", ПользовательИБ.АутентификацияСтандартная);
Результат.Вставить("ЗапрещеноИзменятьПароль", ПользовательИБ.ЗапрещеноИзменятьПароль);
Результат.Вставить("СохраняемоеЗначениеПароля", ПользовательИБ.СохраняемоеЗначениеПароля);

ПользовательИБ.АутентификацияСтандартная = Истина;
ПользовательИБ.ЗапрещеноИзменятьПароль = Истина;

  //++ТДА 24.10.2024 Обход ошибки при настройке  "Запрет повторения пароля среди последних - "
Если ПользователиСлужебныйПовтИсп.Настройки().ОбщиеНастройкиВхода Тогда

Спасибо это поможет быстрее разобраться

Evg-lylyk commented 2 weeks ago

Исправлено в 2024.3.5