From: "Ball, Donald A Jr (Library)" Date: 2007-03-06T06:50:40+09:00 Subject: how to check for group membership in windows? Apologies if this is too off-topic, but I can't think of where else to start looking. I need to test for group membership on windows in a ruby program. I've got some authentication code working just fine: require 'dl/win32' LOGON32_LOGON_NETWORK = 3 LOGON32_PROVIDER_DEFAULT = 0 BOOL_SUCCESS = 1 AdvApi32 = DL.dlopen('advapi32') Kernel32 = DL.dlopen('kernel32') def authenticate_user_from_windows(username, password, domain) # Load the DLL functions logon_user = AdvApi32['LogonUser', 'ISSSIIp'] close_handle = Kernel32['CloseHandle', 'IL'] # Normalize username and domain username = username.strip.downcase domain = domain.strip.downcase # Authenticate user ptoken = "\0" * 4 r,rs = logon_user.call(username, domain, password, LOGON32_LOGON_NETWORK, LOGON32_PROVIDER_DEFAULT, ptoken) success = (r == BOOL_SUCCESS) # Close impersonation token token = ptoken.unpack('L')[0] close_handle.call(token) return success end and now I need some authorization help. I've been browsing msdn for hours to no avail; can anyone point me in the right direction? Merci. Also, in the code above, should close_handle.call(token) be invoked in an ensure block if logon_user.call failed for some reason, or would that imply the ptoken object doesn't need to be cleaned up? - donald