Замена GINA на языке .NET?

Я искал довольно много мест и нашел только одну замену GINA под названием pGINA, но она написана на C++, которого я вообще не знаю.

Кто-нибудь знает такой на C# или VB.NET?

(Я пишу программное обеспечение для использования на работе, чтобы контролировать, что делают сотрудники)


person Community    schedule 16.12.2009    source источник
comment
Было бы полезно, если бы вы дали намек на то, что такое GINA.   -  person Jon Skeet    schedule 17.12.2009
comment
Это ДЖИНА? msdn.microsoft.com/en-us/library/ aa380543%28VS.85%29.aspx   -  person Ryan Lundy    schedule 17.12.2009
comment
Компьютерная аббревиатура GINA (все заглавные буквы) — это библиотека динамической компоновки графической идентификации и аутентификации (DLL). GINA — это заменяемая DLL, загружаемая исполняемым файлом Winlogon. GINA реализует политику аутентификации модели интерактивного входа в систему и, как ожидается, будет выполнять все действия пользователя по идентификации и аутентификации.   -  person    schedule 17.12.2009
comment
Прежде чем что-то спрашивать, возможно, вам следует подумать, что было бы, если бы вредоносное ПО могло это сделать?   -  person Anon.    schedule 17.12.2009
comment
Анон, я не вижу причин, по которым вредоносные программы не могли бы это сделать, если бы они сначала имели доступ администратора к вашей машине. То же самое с не-.NET GINA, что вы, безусловно, можете сделать.   -  person Craig Stuntz    schedule 17.12.2009


Ответы (2)


Хостинг .NET в Winlogon (где загружены GINA dll), вероятно, не такая уж горячая идея - может вызвать всевозможные конфликты, если что-то еще решит сделать то же самое, и если вы выбросите winlogon, вы ничего не добьетесь от этого. ПК. Кроме того, начиная с Vista, GINA заменена на ICredentialProvider (см. здесь), так что ваши инвестиции будут теряется при переходе на более новую ОС. Даже там то же самое: пользовательские поставщики учетных данных загружаются в Winlogon, поэтому, вероятно, не лучшая идея использовать там .NET.

Несмотря на это, оба они предназначены для поддержки пользовательских модулей аутентификации, а не для «контроля того, что делают сотрудники». Существуют и другие способы запуска программного обеспечения на рабочих столах входа в систему, если это то, что вы пытаетесь сделать.

Тем не менее, если вы все еще хотите попробовать это, вам понадобится неуправляемая прокладка DLL, C++/CLI или какой-нибудь взлом IL (см. здесь), чтобы экспортировать функции GINA, поскольку C# не может напрямую экспортировать функции DLL. Чисто управляемое решение C# невозможно.

person nitzmahone    schedule 16.12.2009
comment
Спасибо большое, не знал про висту - person ; 17.12.2009
comment
Хм... Я полагаю, что в Windows Vista CP загружаются в специальный дочерний процесс winlogon.exe: logonui.exe для конкретной цели, чтобы пользовательский код не мог привести к сбою winlogon.exe (msdn.microsoft.com/en-us/magazine/cc163489.aspx). Тем не менее, я бы все же согласился с вашими уговорами. - person Christian.K; 06.03.2010
comment
Верно, узел LogonUI изолирует некорректно работающие CP от WinLogon, но не друг от друга. Если несколько управляемых CP будут загружены на один и тот же хост, вероятность конфликтов будет довольно высокой. IIRC, если LogonUI не работает из-за плохого CP, вы все равно не можете войти в систему. - person nitzmahone; 06.03.2010

Чтобы расширить превосходные моменты Ницмахона:

Полная замена GINA — это действительно отказ от использования управляемого кода. OTOH, вполне возможно написать замену GINA на C++ и заставить ее вызывать код .Net для выполнения черновой работы.

Несколько лет назад я использовал эту технику, чтобы заменить экран CTRL+ALT+DEL модной службой новостей. Моя пользовательская GINA была прокси для стандартной GINA. Большую часть времени он прозрачно передавал вызовы стандартному GINA. Исключением было то, что он запускал .exe для приложения .Net вместо отображения экрана ALT+DEL+CTRL, затем ждал завершения .exe перед отображением экрана входа в систему.

С сожалением я отказался от проекта, когда стало ясно, что работа не может быть непосредственно применена к Vista.

person Kramii    schedule 03.02.2010