Имя: Пароль:
1C
1C 7.7
v7: Вопрос по программной смене пароля пользователю
0 Corvax46
 
24.01.13
12:43
Добрый день.
Необходимо пользователям программно заменять пароли (именно заменить, а не узнать пароль) в определенных случаях. Так, чтобы пользователь не смог войти в базу. При использовании UsersDef.dll необходимо указывать старый пароль, что не всегда возможно. Можно ли обойти данную огорчающую особенность? Или использовать вместо пароля полученный его хэш?
1 aka AMIGO
 
24.01.13
12:45
а как насчет удалять пользователя? все равно зайти не сможет, в виду отсутствия
2 Ёпрст
 
24.01.13
12:46
(0) чтоб войти в базу, знать пароли вовсе не обязательно, это так, к сведению.
Даже записей в ЖР не будет о том, что он там был.
3 aka AMIGO
 
24.01.13
12:49
(2) не все догадаются :)
4 Kreont
 
24.01.13
12:52
(0) в ПриНачалеРаботыСистемы()
добавь проверку что пользователь удален и + вариант (1) вполне хватит
5 Kreont
 
24.01.13
12:53
+(4) Но только не удалять физически, а помечать на удаление в спр. пользователи
6 aka AMIGO
 
24.01.13
12:59
(5) нет, просто завершать его работу, не удаляя
7 aka AMIGO
 
24.01.13
13:12
когда-то давно, в 2002 году видел такое:
в USRDEF помещается текстовый файлик, в нем строки с именами неугодных пользователей, в ГМ
ОбработкаОжидания("УбиваемПользователя",10)
В Проц УбиваемПользователя читается текст,
после - условие если имяпользователя() найдено -
       ЗавершитьРаботуСистемы(0);

вроде всё..
8 Aleksey
 
24.01.13
13:16
у меня так

Процедура ПриНачалеРаботыСистемы()
...
 Объект = СоздатьОбъект("Справочник.Пользователи");
 Если Объект.НайтиПоКоду(Код) = 0  Тогда
   Объект.Новый();
   ...
 глПользователь = Объект.ТекущийЭлемент();
 Если глПользователь.Блокировка = 1 Тогда
   Предупреждение("  Ваш вход в систему заблокирован !!!
       |Обратитесь к администратору системы.",60);
       ЗапросПриЗавершенииРаботы=0;
       ЗавершитьРаботуСистемы(0);    
       Возврат;
 КонецЕсли;


Соответственно в справочнике Пользователей галка Блокировка
9 aka AMIGO
 
24.01.13
13:18
(8) нормально.. это проще на порядок :)
и квалификация убойщика может быть понижена :)
10 Corvax46
 
24.01.13
13:47
(8) +1 Спасибо!
11 varelchik
 
24.01.13
15:02
(8) А я сделал хитрее.
1. Создал Таблицу подключений.
2. В нее пишу инфу кто когда откуда с какого хоста время входа именя доменного пользователя.
3.Туда же пишу инфу о блокировке.
Натравливаю ОбработкуОжидания на эту табличку и раз 10 сек сканирую.
При входе проверяю блокировку Пользователя и без предупреждений в ПриНачалеРаботы ситемы выкидую и паралельно запускаю внешнее приложение о состоянии пользователя.
12 varelchik
 
24.01.13
15:06
А на счет смены Пароля сделал пользователям Индивидуальные настройки.
Все работает через UsersDef.dll
и не обязательно указывать старый.
Вернее создаеш пользователя с пустым паролем хай себе ставить какой надо после входа.
Если надо поменя а он не помнит, то допиливаешь сброс пароля от пользователя уже зашедшего.
Главное шоб в конфигураторе ни кто не сидел.
Это опять же можно проверить через FormEx, что я впринципе и делаю.