identity 項目 (ASP.NET 設定結構描述)
設定 Web 應用程式的識別。 可以在組態檔階層架構中的任何層級宣告這個項目。
注意
本主題中的範例語法包含密碼以示範語法的運作方式。在您的應用程式中,我們建議您使用一項策略來保護密碼。
<identity impersonate="true|false"
userName="domain\username"
password="<secure password>"/>
屬性和項目
下列章節會說明屬性、子項目和父項目。
屬性
屬性 |
描述 |
---|---|
Impersonate |
必要屬性。 指定用戶端 impersonation 是否可用於各個要求。 這個屬性可以是下列其中一個可能值。
值描述
false 指定不使用用戶端模擬。
true 指定使用用戶端模擬。
|
Password |
選擇性屬性。 如果 impersonate 屬性為 true,便會指定要使用的密碼。 如需在登錄中儲存加密背景工作處理序認證的詳細資訊,請參閱 userName 屬性。 |
userName |
選擇性屬性。 如果 impersonate 屬性為 true,便會指定要使用的使用者名稱。 這個屬性和 password 屬性都會以純文字的形式儲存在組態檔中。 儘管 Microsoft Internet Information Services (IIS) 不會回應使用者代理程式的要求而傳輸 .config 檔,依然有其他方式能夠讀取 .config 檔。 例如,透過在包含伺服器的網域上具有適當認證的已驗證使用者。 為了安全性考量,identity 屬性支援在登錄中儲存加密的 userName 和 password 屬性。 認證必須具有 REG_BINARY 的格式,並以 Microsoft Windows 2000 和 Windows XP 資料保護 API (Windows XP Data Protection API,DPAPI) 加密功能加密。 如需詳細資訊,請參閱本主題中稍後的<備註>和<範例>。 |
子項目
無。
父項目
項目 |
描述 |
---|---|
configuration |
指定 Common Language Runtime 和 .NET Framework 應用程式所使用之每個組態檔中的根項目 (Root Element)。 |
system.web |
指定 ASP.NET 組態區段的根項目。 |
備註
若要加密使用者名稱和密碼,並將其儲存在登錄中,請按下列方式設定 userName 和 password 屬性。
userName="registry:HKLM\Software\AspNetProcess,Name"password="registry:HKLM\Software\AspNetProcess,Pwd"
在關鍵字 registry 之後及逗號之前的字串部分,表示 ASP.NET 所開啟的登錄機碼名稱。 逗號之後的部分包含 ASP.NET 將會從中讀取認證的單一字串值。 逗號是必要的,而且認證必須儲存在 HKLM 登錄區中。 如果組態格式不正確,ASP.NET 將不會啟動背景工作處理序,並會遵循目前帳戶建立失敗的程式碼路徑。
認證必須為 REG_BINARY 格式,並包含針對 Windows API 函式 CryptProtectData 呼叫的輸出。 您可以建立加密的認證,並以 Aspnet_setreg.exe 將這些認證儲存在登錄中,此程式會使用 CryptProtectData 來完成加密。 若要下載 Aspnet_setreg.exe,以及 Microsoft Visual C++ 原始程式碼和文件,請移至 ASP.NET 網站,並搜尋 aspnet_setreg。
您應該設定儲存加密認證金鑰的存取權限,使存取權僅供系統管理員 (Administrator) 和系統 (SYSTEM) 使用。 由於金鑰將由以 SYSTEM 執行的 ASP.NET 處理序讀取,因此您應設定下列權限:
Administrators:F
SYSTEM:F
CREATOR OWNER:F
ProcessAccount:R
如下所示,這會提供兩行防禦措施以協助保護資料:
ACL 權限需要存取資料的識別 (Identity) 為系統管理員。
攻擊者必須在伺服器 (CryptUnprotectData) 上執行程式碼,才能復原帳戶認證。
預設組態
下列預設 identity 項目不會明確地設定在 Machine.config 檔案或根 Web.config 檔案中。 然而,應用程式傳回的是預設組態。
<identity impersonate="false" userName="" password="" />
項目資訊
組態區段處理常式 |
|
組態成員 |
|
可設定的位置 |
Machine.config 根層次的 Web.config 應用程式層級的 Web.config 虛擬或實體目錄層級的 Web.config |
需求 |
Microsoft Internet Information Services (IIS) 5.0、5.1 或 6.0 .NET Framework 1.0、1.1 或 2.0 版 Microsoft Visual Studio 2003 或 Visual Studio 2005 |
請參閱
工作
How to: Lock ASP.NET Configuration Settings
參考
system.web 項目 (ASP.NET 設定結構描述)
概念
ASP.NET Configuration Overview
ASP.NET Server Controls and Browser Capabilities