2010-01-22 19 views
0

我正在爲Web應用程序編寫一個基於Wix的安裝程序,並且希望對它安裝的文件夾設置權限,以便IIS可以訪問它們。爲IIS確定IIS用戶5

IIS 6和7分別使用IIS_WPGIIS_USRS,IIS 5使用IUSR_COMPUTER NAME。但是,如果用戶更改了機器名稱,則使用當前計算機名稱設置權限將失敗。

有沒有一種通過編程方式確定IIS 5所使用的用戶帳戶的方法,而不是假設它會是IUSR_COMPUTERNAME

+0

我假設你總是將此應用程序安裝到默認網站(IIS網站#1)? – Kev 2010-02-04 02:09:54

回答

0

我正在做這樣的(不假裝提供最佳實踐的解決方案) - 這是一個直接的CA,其設置的屬性,你可以在以後使用:其中定義了GetAccountDomain方法

​​

像這樣:

static string GetAccountDomain(string accountName, Session session) 
    { 
    SelectQuery query = new SelectQuery("Win32_UserAccount", string.Format("Name='{0}'", accountName), new string[] { "Domain" }); 
    ManagementObjectSearcher searcher = new ManagementObjectSearcher(query); 
    try 
    { 
     foreach (ManagementObject account in searcher.Get()) 
     { 
      return (string)account["Domain"]; 
     } 
    } 
    catch (Exception ex) 
    { 
     session.Log("Failed to get a domain for the user {0}: {1}", accountName, ex.Message); 
    } 

    return null; 
    } 

希望這有助於。

+0

非常感謝您的幫助,這看起來非常有用。我已經暫時轉移到另一個項目幾周​​,所以我無法檢查它,但我會盡快完成。 再次感謝, 保羅 – Votive 2010-03-02 16:21:03