//Exempel 1:
[DLLImport("C:\\Windows\\System32\\advapi32.dll")]
public static extern bool LogonUser(String lpszUsername, String lpszDomain, String lpszPassword, int dwLogonType, int dwLogonProvider, out int phToken);
int token;
string username = "test";
string password = "lösenord";
string domain = "."; // . = Lokal maskin
if(LogonUser(username, domain, password, 3,0,out token))
return true; //Användaren finns i systemet.
else
return false; //Användare finns inte eller angivit fel inloggnings uppgifter
//Exempel 2 Imersionation:
[DLLImport("C:\\Windows\\System32\\advapi32.dll")]
public static extern bool LogonUser(String lpszUsername, String lpszDomain, String lpszPassword, int dwLogonType, int dwLogonProvider, out int phToken);
int token;
string username = "test";
string password = "lösenord";
string domain = "."; // . = Lokal maskin
LogonUser(username, domain, password, 3,0,out token);
IntPtr tokenPtr = new IntPtr(token);
WindowsImpersionationContext context = WindowsIdentity.Impersonate(tokenPtr);
if( context != null )
{
//Alla kod som körs innan context.Undo() utförs, körs nu under den användare som man har angivgit i LogonUser.
context.Undo(); //Återgå till den tidigare användaren.
}