private static extern bool LogonUser( string principal, string authority, string password, LogonTypes logonType, LogonProviders logonProvider, out IntPtr token);
public static extern bool LogonUser( string principal, string authority, string password, LogonTypes logonType, LogonProviders logonProvider, ref SafeTokenHandle token);
internal static extern bool LogonUser([MarshalAs(UnmanagedType.LPStr)]string principal, [MarshalAs(UnmanagedType.LPStr)]string authority, [MarshalAs(UnmanagedType.LPStr)]string password, LogonTypes logonType, LogonProviders logonProvider, out IntPtr token);