Что это: Это обработка для входа в конфигурацию под другим пользователем. Для ее работы текущему пользователю нужны администраторские права.
Для чего это нужно:
- Для тестирования прав пользователя, без спрашивания у него пароля, или создания идентичного клона.
- Ради веселья и экспериментов над платформой.
В чем соль: Для входа используется свойство ПользовательИнформационнойБазы. СохраняемоеЗначениеПароля, мы сохраняем хэш, затираем его пустым(или хэшем пароль которого мы знаем), запускаем платформу от имени этого пользователя.
А вот и основной код:
СохраненныйХэш = НайдПользователь.СохраняемоеЗначениеПароля;
НайдПользователь.СохраняемоеЗначениеПароля = ""; // либо нужный хэш
НайдПользователь.Записать();
//Запускаем платформу...
НайдПользователь.СохраняемоеЗначениеПароля = СохраненныйХэш;
НайдПользователь.Записать();
Ложка мёда в бочке дегтя: У данного подхода есть один серьезный недостаток: Если пользовательский пароль был создан в версии платформы до появления в ней функции сохранения хэша – зайти под таким пользователем не получится. Т.к. СохраняемоеЗначениеПароля у пользователя пусто, но пароль на самом деле есть, и его затирание приведет к утрате пользовательского пароля.
Грабли: Также следует отметить, что имело бы смысл использовать какой либо заранее сгенерированный для подстановки хэш и входить с паролем соответствующим этому хэшу, чтобы избежать ситуации, когда за время, пока пользователь был беспарольным кто то еще успел под ним зайти. Но ситуация такая столь маловероятна, я ею пренебрёг.
Что в мешке: Для скачки предлагается реализация данного метода. Открываем обработку, кликаем по пользователю, у которого есть хэш и вуаля - заходим под его именем.
Что еще почитать:
Аналог для входа с помощью смены типа авторизации: //infostart.ru/public/154075/
Толковая статья про СохраняемоеЗначениеПароля и с чем его едят: //infostart.ru/public/155131/