| Project | Description |
|---|---|
AuthPkgTester |
Tool for testing custom authentication packages. |
BluetoothSubauthPkg |
Sample MSV1_0 subauthentication package that will deny logon if Bluetooth is enabled. |
CredUITester |
Tool for testing CredUI-based authentication |
NoPasswordAuthPkg |
Sample authentication package to allow interactive logon without having to type the password. |
ReversePassword |
Sample Windows Credential Provider that require the password to by typed backwards. Written in C#. |
It's recommended to test in a disposable Virtual Machine (VM), since credential provider problems might break the windows logon screen. You don't want to risk that on your main computer.
- Open solution in Visual Studio and build the projects in release or debug mode.
-
Install .NET 8 Desktop Runtime
-
Copy the build artifacts to the test environment.
-
Run
REGISTER_ReversePassword.batas administrator. -
Log screen, log out or restart the computer.
-
Observe that there's now a new "RP" sign-in option that requires the password to be typed backwards:

-
CredUITester.execan also be used for testing the credential provider:

Password entering can be avoided altogether if NoPasswordAuthPkg is also installed. This can be done by running Install_NoPasswordAuthPkg.ps1 as administrator and restarting afterwards.
- Right click on
UNREGISTER_ReversePassword.batand select "Run as administrator".
- Show authentication dialog: CredUIPromptForWindowsCredentials
- Logoff, shutdown or restart: ExitWindowsEx with
EWX_LOGOFF,EWX_POWEROFForEWX_REBOOTparameter. - Lock desktop: LockWorkStation (same as Ctrl+Alt+Del and click "Lock")
- Authenticate to impersonate a user: LogonUserW
- Credential providers in Windows
- Credential Provider driven Windows Logon Experience (converted https://go.microsoft.com/fwlink/?LinkId=717287 from XPS to PDF)
- Windows-classic-samples CredentialProvider
- Win7Samples credentialproviders
- LSA Authentication Model
- Creating Custom Security Packages
- MSV1_0 Authentication Package is used for local machine logons (Kerberos is used for network logons).