[DllImport("advapi32.dll", SetLastError=true, CharSet=CharSet.Unicode)]
public static extern bool LogonUser(
    string lpszUsername, 
    string lpszDomain, 
    string lpszPassword, 
    LogonType dwLogonType, 
    LogonProvider dwLogonProvider, 
    [Out]out IntPtr phToken
    );
Declare Auto Function LogonUser Lib "advapi32.dll" (ByVal lpszUsername As String, _
   ByVal lpszDomain As String, ByVal lpszPassword As String, ByVal dwLogonType As Integer, _
   ByVal dwLogonProvider As Integer, ByRef phToken As IntPtr) As Integer
public enum LogonType : int
{
    Interactive       = 2,
    Network       = 3,
    Batch         = 4,
    Service       = 5,
    Unlock        = 7,
    NetworkCleartext  = 8,
    NewCredentials    = 9
}
public enum LogonProvider : int
{
    Default       = 0,
    WinNT35       = 1,
    WinNT40       = 2,
    WinNT50       = 3
}
See MSDN docs for description of various logon types etc.
Please add some!
IntPtr hToken = IntPtr.Zero;
if(!LogonUser(username, domain, password, LogonType.Interactive, LogonProvider.Default, out hToken))
     throw new Win32Exception(Marshal.GetLastWin32Error());
if(hToken != IntPtr.Zero)
     CloseHandle(hToken);
Do you know one? Please contribute it!
