The Will Will Web

記載著 Will 在網路世界的學習心得與技術分享

ASP.NET 若需用非預設帳號執行,必須妥善設定相關權限

在 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 幫你設定相關權限即可。

相關連結