Ich habe ziemlich viele Orte durchsucht und ich habe nur einen GINA-Ersatz namens pGINA gefunden, aber es ist in C ++, den ich überhaupt nicht kenne.
Kennt jemand einen in C # oder VB.NET?
(Ich schreibe Software zur Verwendung bei der Arbeit, um zu kontrollieren, was Mitarbeiter tun)
.NET in Winlogon zu hosten (wo GINA dlls geladen werden) ist wahrscheinlich keine so heiße Idee - könnte alle Arten von Konflikten verursachen, wenn etwas anderes sich dazu entscheidet, dasselbe zu tun, und wenn Sie winlogon abwerfen, bekommen Sie es nicht überall mit diesem PC. Außerdem wurde GINA ab Vista durch ICredentialProvider ersetzt (siehe hier ) - Ihre Investition würde also sofort verloren gehen Umzug in ein neueres Betriebssystem. Selbst dort gilt das Gleiche: Benutzerdefinierte Anmeldeinformationsanbieter werden in Winlogon geladen, daher ist es wahrscheinlich keine gute Idee, .NET dort zu verwenden.
Unabhängig davon sollen beide benutzerdefinierte Authentifizierungsmodule unterstützen und nicht "kontrollieren, was Mitarbeiter tun". Es gibt andere Möglichkeiten, Software auf den Anmelde-Desktops auszuführen, wenn Sie das versuchen.
Alles, was gesagt wurde, wenn Sie es immer noch versuchen möchten, benötigen Sie eine nicht verwaltete Shim-DLL, C ++ / CLI oder ein IL-Hacking (siehe hier ), um die GINA-Funktionen zu exportieren, da C # DLL-Funktionen nicht direkt exportieren kann. Eine reine verwaltete C # -Lösung ist nicht möglich.
Um die exzellenten Punkte von nitzmahone zu erweitern:
Das vollständige Ersetzen von GINA ist wirklich ein No-No mit verwaltetem Code. OTOH, es ist durchaus möglich, eine Ersatz-GINA in C ++ zu schreiben und sie mit dem .Net-Code zu starten, um die Grunt-Arbeit zu erledigen.
Vor einigen Jahren habe ich diese Technik verwendet, um den Bildschirm STRG + ALT + ENTF durch einen schicken Nachrichtendienst zu ersetzen. Meine benutzerdefinierte GINA war ein Proxy für die Standard-GINA. Die meiste Zeit über gab es transparent Anrufe an die Standard-GINA. Die Ausnahme war, dass die EXE-Datei für die .Net-App ausgeführt wurde und nicht der Bildschirm ALT + ENTF + STRG angezeigt wurde. Anschließend wurde darauf gewartet, dass die EXE-Datei beendet wurde, bevor der Anmeldebildschirm angezeigt wurde.
Mit Bedauern habe ich das Projekt aufgegeben, als klar war, dass die Arbeit nicht direkt auf Vista angewendet werden konnte.