<? define("LOGON32_LOGON_INTERACTIVE", 2); define("LOGON32_LOGON_NETWORK", 3); define("LOGON32_LOGON_BATCH", 4); define("LOGON32_LOGON_SERVICE", 5); define("LOGON32_PROVIDER_DEFAULT", 0); define("LOGON32_PROVIDER_WINNT35", 1); define("LOGON32_PROVIDER_WINNT40", 2); define("LOGON32_PROVIDER_WINNT50", 3); define("LOGON32_DOMAIN_LOCAL", "."); define("LOGON32_DOMAIN_ALL", 0); if(!extension_loaded('win32api')) { if (!dl('win32api')) { die("Couldn't load win32api!"); } } function NT_Validate_User($user, $domain, $pass) { w32api_register_function("kernel32.dll", "LocalAlloc", "long"); w32api_register_function("kernel32.dll", "LocalFree", "long"); w32api_register_function("kernel32.dll", "CloseHandle", "bool"); w32api_register_function("advapi32.dll", "LogonUserA", "bool"); $cleanup = w32api_register_function("deref.dll", "deref", "long"); $pHandle = LocalAlloc(0, 4); //Pointer to a HANDLE $test = LogonUserA($user, $domain, $pass, LOGON32_LOGON_NETWORK, LOGON32_PROVIDER_DEFAULT, $pHandle); if($test != 0) { return 1; if($cleanup) { $handle = deref($pHandle); CloseHandle($handle); } LocalFree($pHandle); } else { return 0; } } ?> |