LogonUser (advapi32)
Last changed: JM-163.116.163.139

.
Summary
allows you to programmatically log on a user.

C# Signature:

[DllImport("advapi32.dll", SetLastError=true)]
public static extern bool LogonUser(
    string lpszUsername,
    string lpszDomain,
    string lpszPassword,
    int dwLogonType,
    int dwLogonProvider,
    out IntPtr phToken
    );

VB .NET Signature:

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

User-Defined Types:

None.

Notes:

See MSDN docs for description of various logon types etc.

Tips & Tricks:

Please add some!

Sample Code:

const int LOGON32 = 2;

const int LOGON32 = 3;

const int LOGON32 = 4;

const int LOGON32 = 5;

const int LOGON32 = 7;

const int LOGON32 = 8;

const int LOGON32 = 9;

const int LOGON32 = 0;

IntPtr hToken;

IntPtr hTokenDuplicate;

if (LogonUser(username, domain, password,

    LOGON32_LOGON_INTERACTIVE, LOGON32_PROVIDER_DEFAULT, out hToken))

{

    if (DuplicateToken(hToken, 2, out hTokenDuplicate))
    {
    windowsIdentity = new WindowsIdentity(hTokenDuplicate);
    impersonationContext = windowsIdentity.Impersonate();
    }

}

if (hToken != 0) CloseHandle(hToken);

if (hTokenDuplicate != 0) CloseHandle(hTokenDuplicate);

Alternative Managed API:

TODO

Documentation
LogonUser on MSDN