<identity> 項目
控制 Web 應用程式的應用程式識別。可在任何層級 (電腦、網站、應用程式、子目錄或頁面) 宣告這個項目。
<configuration>
<system.web>
<identity>
<identity impersonate="true|false"
userName="domain\username"
password="password"/>
必要屬性
屬性 | 選項 | 說明 |
---|---|---|
impersonate | 指定用戶端 impersonation 是否可用於各個要求。 | |
true | 指定使用用戶端模擬。 | |
false | 指定不使用用戶端模擬。 |
選擇性屬性
屬性 | 說明 |
---|---|
userName | 指定 impersonate 設定為 true 時使用的使用者名稱。
userName 和 password 是以純文字的方式儲存在組態檔中。雖然 IIS 不會傳輸 .config 檔以回應使用者代理程式的要求,但可以利用其他方法讀取組態檔,例如,利用在包含伺服器的網域上,具有適當憑證的已驗證使用者。為了安全性考量,識別區段支援在登錄中儲存加密的 userName 和 password 屬性。憑證必須以 REG_BINARY 的格式,用 Windows 2000 和 Windows XP 資料保護 API (Windows XP Data Protection API,DPAPI) 保密功能加密。如需詳細資訊,請參閱下列的<備註>和<範例>章節。 |
password | 指定 impersonate 設定為 true 時使用的密碼。如需在登錄中儲存加密背景工作處理序憑證的詳細資訊,請參閱 userName。 |
備註
在登錄中儲存使用者名稱和密碼
若要加密使用者名稱和密碼,並將其儲存在登錄中,請按下列方式設定 userName 和 password。
userName="registry:HKLM\Software\AspNetProcess,Name"
password="registry:HKLM\Software\AspNetProcess,Pwd"
在關鍵字 registry 之後及逗號之前的字串部份,表示 ASP.NET 所開啟的登錄機碼 (Registry Key) 名稱。逗號之後的部份包含 ASP.NET 將讀取憑證的單一字串值。逗號為必要的,而且憑證必須儲存在 HKLM 群組中。如果組態格式不正確,ASP.NET 將不啟動背景工作處理序 (Worker Process),並遵循目前帳戶建立失敗的程式碼路徑。
憑證必須為 REG_BINARY 格式,包含對 Windows API 函式 CryptProtectData 呼叫的輸出。您可以建立加密憑證,並將其和 ASP.NET Set Registry 主控台應用程式 (Console Application) (Aspnet_setreg.exe) 一起儲存在登錄中;這個應用程式利用 CryptProtectData 完成加密。若要下載 Aspnet_setreg.exe、Visual C++ 原始程式碼和文件,請造訪網站 www.asp.net,搜尋「aspnet_setreg」。
您應該設定儲存加密憑證金鑰的存取權限,使存取權僅供系統管理員 (Administrator) 和系統 (SYSTEM) 使用。由於金鑰將由以 SYSTEM 執行的 ASP.NET 處理序讀取,因此您應設定下列權限:
Administrators:F
SYSTEM:F
CREATOR OWNER:F
ProcessAccount:R
這會提供兩行防禦措施,以協助保護資料:
- ACL 權限需要存取資料的識別 (Identity) 為系統管理員。
- 攻擊者必須在伺服器 (CryptUnprotectData) 中執行程式碼,才能復原帳戶憑證。
範例
下列範例將用戶端識別模擬設定為 true。
<configuration>
<system.web>
<identity impersonate="true"/>
</system.web>
</configuration>
下列範例指定加密的使用者名稱和密碼必須儲存在登錄中使用者定義的機碼 AspNetIdentity
下。
<configuration>
<system.web>
<identity>
userName="registry:HKLM\Software\AspNetIdentity,Name"
password="registry:HKLM\Software\AspNetIdentity,Pwd"
</identity>
</system.web>
</configuration>
需求
包含於:<system.web>
**Web 平台:**IIS 5.0、IIS 5.1、IIS 6.0
**組態檔:**Machine.config, Web.config
**組態區段處理常式:**System.Web.Configuration.IdentityConfigHandler