2009-10-21 44 views
0

我目前正在嘗試編寫一個小型服務來刪除一個目錄及其中包含的所有文件,有一個問題我不知道如何解決這是用戶沒有權限訪問文件夾或更新它,所以我試圖從AD內部以管理員身份運行刪除。有沒有什麼辦法可以在服務中做到這一點?由於該服務將通過一個小腳本在系統登錄上運行以啓動它。C#刪除一個目錄作爲另一個用戶

任何幫助,將不勝感激。

感謝

+0

它不是社會維基 – 2009-10-21 12:55:26

回答

7

您可以公開本機「LogonUser」方法並使用它們模擬以另一個用戶身份登錄。我在其他項目中成功地使用了它。

[DllImport("advapi32.dll", CharSet = CharSet.Auto)] 
public static extern bool LogonUser(String lpszUserName, String lpszDomain, 
    String lpszPassword, int dwLogonType, int dwLogonProvider, ref IntPtr phToken); 

新鮮點擊媒體做了關於此問題的文章,寫了一個樣品模擬類: - >http://www.freshclickmedia.com/blog/2008/11/programmatic-impersonation-in-c/

使用它很簡單:

using (Impersonator impersonator = new Impersonator()) 
{ 
    // code in here 
} 
+0

很好的回答!雖然這個鏈接稍有改變。我在http://freshclickmedia.co.uk/2008/11/programmatic-impersonation-in-c/上找到它 – 2017-06-08 15:35:40

1

如果它運行作爲Windows服務,該服務可以在安裝時被賦予特定的憑證。或者你是否在問一個僅在啓動時運行的小型獨立應用程序?

換句話說,你是在說安裝的Windows服務還是獨立的應用程序?

+0

它希望成爲一個小型站點,僅在登錄後纔會運行,以刪除上一個用戶可能存在的目錄,因爲它們正在執行虛擬化應用程序,並且需要刪除其中運行的沙箱目錄。 – manemawanna 2009-10-21 13:04:22

相關問題