本篇介紹 ASP.NET 中的 Windows 驗證模式,是一種簡易的網站使用者驗證方式。因為依賴 Windows 和 AD 的安全機制,不須撰寫額外的驗證邏輯,有著簡單和高安全性的特色。適合用於內部網路(Intranet)應用。
ASP.NET 專案設定 Windows 驗證
在 ASP.NET 內的 Web.Config 內加入認證模式 = Windows,在啟用 Active Directory (AD) 的情形下,使用 AD 的使用者名稱 / 密碼進行驗證。以下是最基本的必要設定值。
<configuration>
<system.web>
<authentication mode="Windows" />
</system.web>
</configuration>
也要搭配 IIS 一同設定站台的認證設定。
- 開啟 IIS 管理員,選擇需要設定的站台。
- 在首頁窗格中的「安全性」區段,按兩下「驗證」。
- 在「驗證」窗格中,選取「Windows 驗證」,按下右方「動作」窗格中的「啟用」。
Windows 驗證的相關程式碼
User.Identity.IsAuthenticated
可以判斷使用者是否是「已登入」狀態。
可以透過 User.Identity.Name
判斷目前是否已登入,若尚未登入,則此屬性為 Null,存取時會引發例外。
string strLoginID = User.Identity.Name;
登入失敗時,則回應 HTTP Response 401 (認證無效而拒絕存取)。