MSGINA.DLL Features

If you are writing a GINA to replace Microsoft's standard GINA (MSGINA), you may want to provide some or all of MSGINA's functionality. Following is a list of these features and a brief description of how they are controlled.

Registry key values control the availability or behaviour of many of these features. Unless otherwise noted, these key values belong to a registry key refered to as the WinlogonIni key and have value types of [REG_SZ]. The actual path of the WinlogonIni key is:

\HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\Winlogon

Having [REG_SZ] value types makes it convenient to query the key values using AllocAndGetProfileString(), GetProfileString(), and GetProfileInt().

Value Name:
Valid Values:

AutoAdminLogon
"1" or any other string value

Value Name:
Valid Values:

DefaultUserName
(name of user to automatically log on)

Value Name:
Valid Values:

DefaultDomainName
(name of domain user account is in)

Value Name:
Valid Values:

DefaultPassword
(password of user account, in cleartext)


If the AutoAdminLogon key value is present and contains a "1", an automatic logon will occur based upon the DefaultPassword key value. The account being logged onto is specified via the DefaultUserName and DefaultDomainName key values. If present and non-null, the password in DefaultPassword is also used.

If an automatic logon is being performed, but the DefaultPassword key value is either not present or is null, then this is a one-time only autologon. The AutoAdminLogon key value will be set to contain a "0" before the logon is attempted. This prevents any future autologons.

There is one additional caveat to autologon. If an autologon is indicated, MSGINA checks the state of the Shift key. If it is held down, it is assumed that the user wants to over-ride autologon and provide identification/authentication information interactively. This is a critical feature when you are debugging a dedicated application. The Shift-override of automatic logon is disabled if the following key value is present and has a value of "1":

Value Name:

IgnoreShiftOverride


Value Name:

Shell


There may be more than one program listed, each seperated by a comma. By default, "Progman" is listed. If this key is not found, or has no programs listed, Progman is activated as the default shell.