В платформе 1С.Предприятие 8 имеется замечательная возможность аутентификации пользователей средствами Windows.
Поэтому многие организации, где используется Active Directory, используют и Windows - аутентификацию пользователей.
При этом отключая аутентификацию 1С:Предприятия.
Была поставлена задача: любой сотрудник компании должен иметь возможность выполнить некую операции в среде 1С:Предприятия с любого компьютера.
Понятно, что на других компьютерах работают другие сотрудники, у которых 1С запущена под их учетными записями.
Можно конечно запустить второй сеанс работы, но этот процесс занимает много времени.
Если используется 1С-аутентификация, то можно использовать COM-соединение.
А вот если используется Windows - аутентификация и выключена возможность 1С-аутентификации, то появляется проблема как проверить
тот ли сотрудник использует 1С?
Имя пользователя домена можно брать из настроек пользователя средствами 1С используя
свойства глобального контекста "ПользователиИнформационнойБазы".
А дальше попросить ввести пользователя его пароль и проверить его.
Для аутентификации пользователей можно использовать объект "LDAP" (Lightweight Directory Access Protocol) или "WinNT".
Про LDAP можно прочитать здесь http://citkit.ru/articles/1209/
Про WinNT можно прочитать здесь http://www.deltann.ru/10/d-062008/p-1
Ниже приведен пример функции использующий LDAP.
Функция ПроверитьПользователя(Домен, ИмяПользователя, Пароль)
dso = ПолучитьCOMОбъект("LDAP:");
Попытка
obj = dso.OpenDSObject("LDAP://" + Домен, ИмяПользователя, Пароль, 1);
Возврат Истина;
Исключение
Описание = ОписаниеОшибки();
Если Найти(Описание, "имя пользователя или пароль не опознаны.") > 0 Тогда
Сообщить("Неверный пароль");
Иначе
Сообщить(Описание);
КонецЕсли;
Возврат Ложь;
КонецПопытки;
КонецФункции
К статье приложен пример обработки для проверки функции.