Замена GINA на языке.NET?
Я искал довольно много мест, и я нашел только одну замену GINA под названием pGINA, но это на C++, которого я вообще не знаю.
Кто-нибудь знает один в C# или VB.NET?
(Я пишу программное обеспечение для использования на работе, чтобы контролировать, что сотрудники делают)
2 ответа
Хостинг.NET в Winlogon (где загружены библиотеки GINA), вероятно, не такая уж и горячая идея - может вызвать всевозможные конфликты, если что-то еще решит сделать то же самое, и если вы удаляете winlogon, вы ничего не получите с этим ПК. Кроме того, GINA была заменена с Vista на ICredentialProvider (см. Здесь)- так что ваши инвестиции будут потеряны, как только вы перейдете на более новую ОС. Даже там применимо то же самое: пользовательские поставщики учетных данных загружаются в Winlogon, поэтому, вероятно, не очень хорошая идея использовать там.NET.
В любом случае, оба они предназначены для поддержки пользовательских модулей аутентификации, а не для "контроля за тем, что делают сотрудники". Существуют и другие способы запуска программного обеспечения на рабочих столах входа в систему, если это то, что вы пытаетесь сделать.
Все это говорит о том, что если вы все еще хотите попробовать это, вам понадобится неуправляемая shim DLL, C++/CLI или некоторый IL-хакер (см. Здесь), чтобы экспортировать функции GINA, потому что C# не может напрямую экспортировать функции DLL. Чисто управляемое решение C# невозможно.
Чтобы раскрыть отличные моменты Ницмахона:
Полная замена GINA - это на самом деле нет-нет, используя управляемый код. OTOH, вполне возможно написать замену GINA на C++ и заставить ее вызывать код.Net для выполнения основной работы.
Несколько лет назад я использовал эту технику, чтобы заменить экран CTRL+ALT+DEL причудливой службой новостей. Моя обычная GINA была прокси для стандартной GINA. Большую часть времени он прозрачно передавал вызовы стандартному GINA. Исключением было то, что он запустил.exe для приложения.Net вместо отображения экрана ALT+DEL+CTRL, а затем дождался завершения.exe для отображения экрана входа в систему.
С сожалением я отказался от проекта, когда стало ясно, что работа не может быть напрямую применена к Vista.