共用方式為


使用 IIS 驗證和 ASP.NET 模擬

更新:2007 年 11 月

網際網路資訊服務 (IIS) 提供幾種在保護 Web 應用程式安全時能夠使用的驗證配置。一般狀況包含在企業內部網路使用整合式 Windows 驗證 (NTLM),根據 Windows 登入判斷應用程式使用者的識別,或為特定應用程式指定單一匿名識別。IIS 提供的 Windows 識別就可以用於判斷 Web 應用程式是否能存取受保護的 Windows 資源,例如使用存取控制清單 (ACL) 保護的檔案,或像是檔案或資料庫伺服器的網路資源。您可以使用模擬來將 ASP.NET 設定為使用 IIS 所提供的 Windows 識別。

根據預設,ASP.NET 設定使用 Windows 驗證模式,將 IIS 所提供的 Windows 識別套用至目前 HttpContext 物件的 User 屬性。這能夠讓您經由 User 屬性判斷 IIS 提供的識別 (當使用匿名識別時,使用者 Name 是空白的),但是不使用所提供的識別當做目前網頁的 WindowsIdentity。當判斷應用程式是否擁有特定檔案或網路資源的存取權時,就會使用應用程式的 WindowsIdentity

若要設定 ASP.NET 模擬 IIS 提供的 Windows 識別,當做 ASP.NET 應用程式的 WindowsIdentity,請編輯應用程式的 Web.config 檔,並將 identity 組態項目的 impersonate 屬性設定為 true,如下列程式碼範例所示。

<configuration>
  <system.web>
    <identity impersonate="true" />
  </system.web>
</configuration>

模擬並不會受到以驗證組態項目設定的驗證 mode 所影響。驗證項目是用於判斷目前 HttpContextUser 屬性。模擬是用於判斷 ASP.NET 應用程式的 WindowsIdentity

以下將描述如何使用內部網路案例當做範例來啟用模擬。在這個案例中,您將設定內部企業網站以張貼員工資訊。但是,某些資訊只適用於經理級人員。經理級人員資訊可以張貼至員工資訊網站的子目錄內,以限制對它的存取。IIS 會使用 Windows 整合式 (NTLM) 安全性判斷使用者的識別。案例中將假設:

  • Web 伺服器有安裝 Microsoft Windows NT Server、Windows 2000 Server 或 Windows Server 2003 作業系統。

  • Web 伺服器安裝了 IIS 6.0。

  • 已使用 NTFS 格式化 Web 伺服器硬碟。

  • 所有需要存取限制資源的員工都是使用 Windows。

案例中應用程式的系統管理員需要執行下列動作:

  1. 建立下圖所示的檔案和目錄:

  2. 建立名為 Managers 的 Windows 群組,其中包含可存取 ManagerInfo.aspx 檔案的所有使用者。

  3. 使用 Internet Information Services (IIS) 管理員來停用應用程式的匿名驗證,並啟用整合式 Windows 驗證。

  4. 在應用程式的 Web.config 檔中,將識別項目中的 impersonate 屬性設定為 true。

  5. 設定 ManagerInformation 目錄的 NTFS 存取控制清單 (ACL),只允許存取 Windows Manager 群組以及任何必要系統帳戶中的識別。您需要確認包含 ASP.NET 處理序的識別。Windows 2000 Server 或 Windows NT 的 ASP.NET 處理序識別是本機 ASP.NET 帳戶。Windows Server 2003 (含) 以後版本的 ASP.NET 處理序識別是 IIS 應用程式集區識別,預設值為 NETWORK SERVICE 帳戶。

    注意事項:

    ASP.NET 角色管理功能提供了限制存取應用程式區域的替代方法。如需詳細資訊,請參閱使用角色管理授權

請參閱

概念

Web 應用程式的基本安全性實行方式

其他資源

ASP.NET Web 應用程式安全性