我正在使用SimpleImpersonation包,它可以解决一些外部函数的问题,例如
[DllImport("advapi32.dll", CharSet = CharSet.Unicode, SetLastError = true)]
internal static extern bool LogonUser(string lpszUsername, string lpszDomain, string lpszPassword, int dwLogonType, int dwLogonProvider, out IntPtr phToken);
我这样使用它:
using (var imp = Impersonation.LogonUser(domain, user, password, LogonType.Interactive))
{
// another user
}
//me again
问题是此方法只为当前线程模拟用户,而我需要在应用程序中所有线程的其他凭据下执行操作。怎么做到这一点?