windows-nt/Source/XPSP1/NT/ds/security/gina/testnp/testnp.c

162 lines
3.8 KiB
C
Raw Normal View History

2020-09-26 03:20:57 -05:00
//+---------------------------------------------------------------------------
//
// Microsoft Windows
// Copyright (C) Microsoft Corporation, 1992 - 1993.
//
// File: msgina.c
//
// Contents: Microsoft Logon GUI DLL
//
// History: 7-14-94 RichardW Created
//
//----------------------------------------------------------------------------
#include <windows.h>
#include <npapi.h>
#include <ntsecapi.h>
#include <stdio.h>
#include <stdlib.h>
BOOL
WINAPI
DllMain(
HINSTANCE hInstance,
DWORD dwReason,
LPVOID lpReserved)
{
switch (dwReason)
{
case DLL_PROCESS_ATTACH:
DisableThreadLibraryCalls ( hInstance );
case DLL_PROCESS_DETACH:
default:
return(TRUE);
}
}
VOID
DebugOut(
PSTR Format,
...
)
{
va_list ArgList;
CHAR Buffer[ 256 ];
va_start( ArgList, Format );
_vsnprintf( Buffer, 256, Format, ArgList );
OutputDebugString( Buffer );
}
DWORD
WINAPI
NPGetCaps(
DWORD nIndex
)
{
DWORD dwRes;
switch (nIndex)
{
case WNNC_NET_TYPE:
dwRes = 0xffff0000; // credential manager
break;
case WNNC_SPEC_VERSION:
dwRes = WNNC_SPEC_VERSION51; // We are using version 5.1 of the spec.
break;
case WNNC_DRIVER_VERSION:
dwRes = 1; // This driver is version 1.
break;
case WNNC_START:
dwRes = 1; // We are already "started"
break;
default:
dwRes = 0; // We don't support anything else
break;
}
return dwRes;
}
/****************************************************************************
FUNCTION: NPLogonNotify
PURPOSE: This entry point is called when a user logs on. If the user
authentication fails here, the user will still be logged on
to the local machine.
*******************************************************************************/
DWORD
WINAPI
NPLogonNotify (
PLUID lpLogonId,
LPCWSTR lpAuthentInfoType,
LPVOID lpAuthentInfo,
LPCWSTR lpPreviousAuthentInfoType,
LPVOID lpPreviousAuthentInfo,
LPWSTR lpStationName,
LPVOID StationHandle,
LPWSTR *lpLogonScript
)
{
PMSV1_0_INTERACTIVE_LOGON pAuthInfo;
//
// Write out some information about the logon attempt
//
DebugOut( "NPLogonNotify\n" );
DebugOut( "lpAuthentInfoType=%ws lpStationName=%ws\r\n",
lpAuthentInfoType, lpStationName);
// Do something with the authentication information
//
pAuthInfo = (PMSV1_0_INTERACTIVE_LOGON) lpAuthentInfo;
DebugOut( "LogonDomain=%ws User=%ws\r\n",
pAuthInfo->LogonDomainName.Buffer,
pAuthInfo->UserName.Buffer);
return NO_ERROR;
}
/****************************************************************************
FUNCTION: NPPasswordChangeNotify
PURPOSE: This function is used to notify a credential manager provider
of a password change (or, more accurately, an authentication
information change) for an account.
*******************************************************************************/
DWORD
WINAPI
NPPasswordChangeNotify (
LPCWSTR lpAuthentInfoType,
LPVOID lpAuthentInfo,
LPCWSTR lpPreviousAuthentInfoType,
LPVOID lpPreviousAuthentInfo,
LPWSTR lpStationName,
LPVOID StationHandle,
DWORD dwChangeInfo
)
{
DebugOut( "NPPasswordChangeNotify\n" );
return NO_ERROR;
}