在 IIS 中,應用程式集區使用的身份識別為 Network Service,而 ASP.NET 應用程式預設的執行權限也是這個身份,當我們需要以非預設的權限執行 ASP.NET 時通常有兩種作法:1) 修改 應用程式集區的身份識別、2) 設定 web.config 中的 <identity> 參數。
針對第一種狀況,除了要參考我另一篇【IIS應用程式集區自訂身份識別後如何讓 ASP.NET 正常執行】文章之外,在該文章「備註二」,可以替換成以下指令:
cd C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727
aspnet_regiis -ga User1
在 aspnet_regiis /? 所輸出的說明是
-ga <user> 針對 ASP.NET 所使用的 IIS Metabase 和其他目錄,授與指定的使用者或群組存取權限。
也就是說,只要利用 aspnet_regiis.exe 就可以幫我們設定完所有該設定的權限,不需要額外手動調整。
而第二種狀況,就是修改 web.config 中的 <identity> 參數,如下範例:
<identity impersonate="true" userName="User1" password="MyPassW0rd"/>
若要透過這種方式運作 ASP.NET 一樣會遇到許多權限不足的情況,建議也是透過 aspnet_regiis 幫你設定相關權限即可。
相關連結