首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> ASP.NET 基礎 >> 關於ASP.NET

ASP.NET 整合 Windows 網域帳戶實現權限控制

     編輯:關於ASP.NET

採用網域認證可免建立獨立帳號系統、達成單一登入 (SSO)、提升安全性。本文說明 IIS 設定與 Web.config URL 授權規則。

IIS 設定 (關鍵步驟)

  1. 為應用程式建立獨立虛擬目錄/應用程式。
  2. 「目錄安全性」→「驗證方法」:取消匿名存取,僅勾選「整合式 Windows 驗證」。

授權策略:URL 授權 (推薦)

優點:設定檔部署隨應用程式走,免逐目錄設定 NTFS 權限。

目錄結構範例

\root\              (所有合法網域用戶)
\root\admin\        (僅管理員群組)
\root\sales\        (業務群組)
\root\user\         (一般用戶)

根目錄 Web.config

<configuration>
  <system.web>
    <authentication mode="Windows" />
    <identity impersonate="true" />
    <authorization>
      <allow roles="Domain\Users, Domain\Admins" />
      <deny users="*" />
    </authorization>
  </system.web>
</configuration>

Admin 子目錄 Web.config

<configuration>
  <system.web>
    <authorization>
      <allow roles="Domain\Admins" />
      <deny users="*" />
    </authorization>
  </system.web>
</configuration>

關鍵說明

  • <identity impersonate="true" />:以呼叫者身分執行程式碼,後端資料庫連線可用 Windows 整合驗證。
  • <allow roles="..."/> 支援網域群組 (格式 Domain\Group) 與個別帳號。
  • 規則由上而下評估,第一個符合生效;<deny users="*"/> 封鎖其餘所有人。
  • 子目錄設定會覆寫父目錄,達到精細權限控制。

常見問題

  • 雙重跳躁:若需存取遠端 SQL Server,需設定 Kerberos 委派或使用固定服務帳號連線。
  • 效能:Impersonate 會增加系統呼叫開銷,高流量站點可考慮關閉 Impersonate,改用連線字串 Integrated Security=SSPI 搭配應用程式集區身分。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved