Personalizzazione di Winlogon

Personalizzare il comportamento di Winlogon implementando un provider di credenziali. Per informazioni sui provider di credenziali, vedere Interfaccia ICredentialProvider.

Windows Server 2003 e Windows XP: I provider di credenziali non sono supportati.

Le sezioni seguenti descrivono i modi per personalizzare Winlogon nelle versioni di Windows prima di Windows Vista.

Nota

Le DLL GINA e i pacchetti di notifica Winlogon vengono ignorati in Windows Vista.

 

Pacchetti di notifica Winlogon

Un pacchetto di notifica Winlogon è una DLL che esporta funzioni che gestiscono eventi Winlogon. Ad esempio, quando un utente accede al sistema, Winlogon chiama ogni pacchetto di notifica per fornire informazioni sull'evento. Per altre informazioni, vedere Pacchetti di notifica Winlogon.

Stub GINA

Uno stub di GINA è una DLL GINA personalizzata che usa le implementazioni delle funzioni di esportazione di una DLL GINA installata in precedenza (in genere MsGina.dll). Uno stub di GINA ottiene puntatori a ogni funzione esportata dalla DLL GINA installata in precedenza. Ogni funzione stub di GINA usa quindi il puntatore della funzione appropriato per chiamare la funzione corrispondente nella DLL GINA installata in precedenza.

Importante

Ogni funzione stub di GINA deve chiamare la funzione corrispondente nell'GINA installata in precedenza.

 

Una funzione stub GINA può implementare funzionalità aggiuntive in una o più delle funzioni di esportazione. Ad esempio, la funzione WlxLoggedOutSAS di uno stub GINA potrebbe controllare l'ora corrente prima di chiamare la funzione WlxLoggedOutSAS della MsGina.dll. Se l'ora corrente si trova all'interno di un intervallo specifico, la funzione stub potrebbe visualizzare un messaggio che indica che l'accesso non è consentito durante quel periodo di tempo e restituire WLX_SAS_ACTION_NONE a Winlogon. La funzione WlxLoggedOutSAS del MsGina.dll verrà quindi chiamata solo durante il periodo di tempo consentito.

L'applicazione stub GINA ottiene una tabella di invio alle funzioni di supporto di Winlogon tramite il parametro pWinlogonFunctions della funzione WlxInitialize . L'applicazione stub GINA può usare questa tabella di invio per chiamare funzioni di supporto winlogon. Ad esempio, un'applicazione stub GINA può chiamare la funzione WlxSasNotify per causare un evento di sequenza di attenzione sicura quando una smart card viene inserita in un lettore.

Per altre informazioni sulla creazione di uno stub di GINA, vedere l'esempio di Gina Stubs nella directory \Samples\Security\Gina\GinaStub di un'installazione di Platform Software Development Kit (SDK).

Nota

Tutte le chiamate tra GINA e Winlogon devono essere all'interno di un singolo thread.

 

Hook GINA

Un hook GINA è uno stub GINA che, nell'implementazione della funzione WlxInitialize , sostituisce il puntatore alla funzione di supporto WlxDialogBoxParam nella tabella dispatch con un puntatore alla propria implementazione della funzione WlxDialogBoxParam . Di conseguenza, ogni volta che l'GINA installata in precedenza (in genere MsGina.dll) chiama la funzione WlxDialogBoxParam , viene chiamata la funzione implementata dall'hook GINA.

La funzione WlxDialogBoxParam implementata dall'hook GINA può sostituire la procedura di callback dialogProc che risponde a un evento specifico della finestra di dialogo.

In questo modo l'hook GINA controlla completamente l'aspetto e il comportamento di tutte le finestre di dialogo che MsGina.dll crea.

Per altre informazioni sulla creazione di un hook GINA, vedere l'esempio di Gina Hooks nella directory \Samples\Security\GinaHook di un'installazione di Platform SDK.

Nota

Tutte le chiamate tra GINA e Winlogon devono essere all'interno di un singolo thread.