Замена экрана входа в Windows 7 полностью? - PullRequest
3 голосов
/ 12 ноября 2011

В Windows XP можно было заменить интерфейс входа в систему вашей собственной реализацией GINA, которая могла бы добавить дополнительные функции к экрану входа в систему, а также реализовать некоторые специфичные для организации функции.

Я просмотрел ряд статей MSDN, и все они предполагают, что этого невозможно достичь с помощью новой системы входа в систему (Windows Vista и новее).

Однако на экране входа в систему или каждый раз, когда SASпоследовательность вызывается, процесс LogonUI запускается и предоставляет GINA-подобный интерфейс для взаимодействия с пользователем.

Мне было интересно, возможно ли накатить вашу собственную реализацию LogonUI с целью замены логина / пользовательского интерфейса SAS? Я не смог найти на нем никаких статей, но я думаю, что это приемлемый вариант.

1 Ответ

2 голосов
/ 06 декабря 2011

Чуть позже, но вот, пожалуйста. Вы можете создать пользовательский поставщик учетных данных со своими полями, чтобы принимать учетные данные для входа (в зависимости от того, какую форму они могут принимать). Если вы хотите выйти за рамки этого и создать небольшой рабочий процесс, вам необходимо запустить модальное окно в методе SetSelected учетных данных. Затем вы можете в значительной степени использовать вашу реализацию GINA (без реальных функций GINA). Используйте тип CPUS, чтобы узнать, в каком режиме вы работаете (LOGON, LOCK_WORKSTATION, CHANGE_PASSWORD и т. Д.) И соответственно настроить свой пользовательский интерфейс.

Очевидно, что это не «рекомендуемый» подход (на самом деле довольно хакерский), но он самый простой. Одно предупреждение: у вас будут проблемы с таймаутами C-A-D и т. Д., Так что будьте готовы к некоторым сюрпризам.

Другой, возможно, более изящный способ - это создание собственного провайдера учетных данных с экраном входа / разблокировки (правильный путь). Затем предоставьте ссылки для запуска других рабочих процессов (например, сброс пароля). Вы можете создавать собственные экраны, которые запускаются при нажатии на конкретную ссылку, путем реализации метода CommandLinkClicked учетных данных.

Если у вас есть время и вы хотите сделать это правильно, я бы порекомендовал второй подход. В будущем вы избавите себя от множества головных болей.

...