public MakeInactiveUsersPassiveWorker(AbpTimer timer, IRepository <User, long> userRepository, ImpersonationManager impersonationManager) : base(timer) { _userRepository = userRepository; Timer.Period = 5000; //5秒(适合测试,但一般情况下会多一些) _impersonationManager = impersonationManager; }
static void ThreadProc(Object stateInfo) { var destination = stateInfo as string; var identity = WindowsIdentity.GetCurrent(); while (true) { Console.WriteLine("Run"); PrintIdentity("Thread", identity); //Using the ImpersonationManager using (var impersonationNative = new ImpersonationManager()) { impersonationNative.ImpersonateByProcessId(5280); identity = WindowsIdentity.GetCurrent(); PrintIdentity("Thread", identity); ReadFiles(destination); } Thread.Sleep(1000); identity = WindowsIdentity.GetCurrent(); PrintIdentity("Thread", identity); } }