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

在 IIS 中，應用程式集區使用的身份識別為 Network Service，而 ASP.NET 應用程式預設的執行權限也是這個身份，當我們需要以非預設的權限執行 ASP.NET 時通常有兩種作法：1) 修改 應用程式集區的身份識別、2) 設定 web.config 中的 <identity> 參數。

針對第一種狀況，除了要參考我另一篇【[IIS應用程式集區自訂身份識別後如何讓 ASP.NET 正常執行](/post/2008/12/31/ASPNET-and-Application-Pool-Identity-setting-in-IIS-60)】文章之外，在該文章「備註二」，可以替換成以下指令：

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

**相關連結**

-   [ASP.NET IIS 註冊工具 (Aspnet\_regiis.exe)](http://msdn.microsoft.com/zh-tw/library/k6h9cz8h.aspx)
