среда, 21 декабря 2011 г.

Изменение пароля под тонким веб-клиентом

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

Предлагаю свой вариант алгоритма изменения пароля.

// Если хеш подтверждения пароля совпадает со старым хешем тогда изменяем пароль
ПользовательИнформационнойБазы = ПользователиИнформационнойБазы.ТекущийПользователь();
ХешАвторизации = ПользовательИнформационнойБазы.СохраняемоеЗначениеПароля;

ПользовательИнформационнойБазы.Пароль = Пароль;
ПользовательИнформационнойБазы.Записать();

Пользователь = ПользователиИнформационнойБазы.НайтиПоИмени(ИмяПользователя());
ХешНовогоПароля = Пользователь.СохраняемоеЗначениеПароля;

Если ХешНовогоПароля = ХешАвторизации Тогда
    ПользовательИнформационнойБазы.Пароль = НовыйПароль;
    ПользовательИнформационнойБазы.Записать();
Иначе
    ПользовательИнформационнойБазы.СохраняемоеЗначениеПароля = ХешАвторизации;
    ПользовательИнформационнойБазы.Записать();
КонецЕсли;
 
Скачать обработку 

Комментариев нет:

Отправить комментарий