[DllImport("advapi32.dll", CharSet=CharSet.Auto, SetLastError=true)]
static extern int LogonUser(string lpszUsername, string lpszDomain, string lpszPassword, LOGON_TYPE dwLogonType, LOGON_PROVIDER 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
As always, only do SetLastError=true if you actually intend to call GetLastError.
Tips & Tricks:
Please add some!
Sample Code:
const int LOGON32_LOGON_INTERACTIVE = 2;
const int LOGON32_LOGON_NETWORK = 3;
const int LOGON32_LOGON_BATCH = 4;
const int LOGON32_LOGON_SERVICE = 5;
const int LOGON32_LOGON_UNLOCK = 7;
const int LOGON32_LOGON_NETWORK_CLEARTEXT = 8;
const int LOGON32_LOGON_NEW_CREDENTIALS = 9;
const int LOGON32_PROVIDER_DEFAULT = 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
TODO - a short description
16/03/2007 13:32:57 - -65.65.235.141
TODO - a short description
16/03/2007 13:33:02 - -192.190.204.102
Please edit this page!
Do you have...
helpful tips or sample code to share for using this API in managed code?
corrections to the existing content?
variations of the signature you want to share?
additional languages you want to include?
Select "Edit This Page" on the right hand toolbar and edit it! Or add new pages containing supporting types needed for this API (structures, delegates, and more).
NEW: SmartAssembly 5.0
Automated Error Reporting: get a volume of crash reports and a complete state of your program whenever it fails, and improve the quality of your program.