Замена GINA на языке .NET? - PullRequest
8 голосов
/ 17 декабря 2009

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

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

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

Ответы [ 2 ]

11 голосов
/ 17 декабря 2009

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

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

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

2 голосов
/ 03 февраля 2010

Чтобы раскрыть отличные очки нитцмахона:

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

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

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

...