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="" />

項目資訊

組態區段處理常式

System.Web.Configuration.IdentitySection

組態成員

SystemWebSectionGroup.Identity

可設定的位置

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:鎖定 ASP.NET 組態設定

參考

system.web 項目 (ASP.NET 設定結構描述)

<configuration> 項目

System.Configuration

System.Web.Configuration

概念

ASP.NET 組態概觀

ASP.NET Web 伺服器控制項和瀏覽器能力

保護 ASP.NET 組態

ASP.NET 組態案例

其他資源

ASP.NET 組態檔

ASP.NET 組態設定

一般組態設定 (ASP.NET)

ASP.NET 組態 API