2012-07-30 63 views
0

我正在嘗試構建一個旨在執行多個任務的C#應用​​程序[例如,同時打開文件,打開端口,產生Windows服務等]。在C#應用程序中同時執行多個任務,每個任務都在單獨的Windows用戶帳戶下執行多個任務

這裏是我的要求: -

一)應用程序應該能夠在同一時間 B [通過和一個單獨的線程內,但相同的應用領域內的每一個開始])每個運行這些任務線程應該帳戶單獨的Windows用戶帳戶下運行[用戶名和密碼將提供應用程序啓動後通過庫/表之前]

請表明,在C#實現這一目標的最佳方式是什麼? 謝謝, 薩米特

回答

0

不知道你是否可以運行在不同勢的用戶憑據不同的任務/線程雖然你可以打電話,這是不是與使用不同的用戶憑據運行不同的線程。

Process.Start(filenameToStart, username, password, domain);

和用於並行處理Parallel.Invoke都可以使用。

Parallel.Invoke(() => doX(),() => doY());

+0

感謝您回答那個Mayank。但我做了一些研究自己,發現可用於冒充任何用戶,並在他/她的憑據運行一個線程本地API SetThreadToken – Bathla 2012-08-16 18:38:28

1

這裏是我的研究工作: - 一)的DllImport LogonUser的,SetThreadToken和LogOffUser的API 二)登錄的用戶,並獲得句柄/令牌 C)創建線程和設定的令牌使用SetThreadToken的線程 d)運行/執行線程。現在,該線程將執行的操作,就好像賬戶,其憑據的LogonUser API g中提供)的線程已完成其工作之後,用戶的下中運行,調用API LogoffUser登錄用戶關閉線程。

這確實對我有效!

不過,我會有興趣知道如果我能做到這一點使用管理/純C#的API。

有人嗎?