ASP.NET :: Web Authentication > Windows Authentication

如何對網站實現 Windows 驗證機制?此內容僅是測試記錄!

最近在做一連串的...網站使用者登入驗證測試,要做啥?就想實現 SSO 吧!
想說先從最簡單的 Windows 開始吧!
阿 Windows 驗證會發生甚麼事?就是打開瀏覽器登入網站時,會彈出一個輸入帳號密碼的對話框!

做了之後,Windows 驗證確實很簡單,不需要寫甚麼程式碼!
因為在 Visual Studio 建立的 Web 專案預設的驗證類型是 Windows

<authentication mode="Windows" />

所以專案建立完成,再 Build 專案即可佈署了!

 

開發工具與環境:

1. Client: Windows XP + Visual Studio 2008
2. Server: Windows Server 2003 R2 with SP1 + AD(環境有所以記下) + IIS 6.0

要做具有 Windows 驗證的網站,我的(不代表正式網站是這麼做)測試步驟是這樣:

1. 在 IIS 下建立一個網站,並在網站上點選右鍵,內容以做下列設定

  • 主目錄 > 應用程式設定值 > 點選建立 (如後續說明)
  • 目錄安全設定 > 驗證及存取控制 > 編輯 > 驗證方法 > 取消 啟用暱名存取,只留下 整合式 Windows 驗證
  • ASP.NET > ASP.NET 版本: 2.0.50727

2. 在 VS 2008 建立一個新的 Web 專案

  • 選擇 File > New Project > Web > ASP.NET Web Application
  • Build 專案
  • 將整個專案的內容 copy 到 IIS 的目錄下,一般是 C:\Inetpub\wwwroot\網站資料夾

3. 打開瀏覽器輸入網站 URL,如果彈出 Windows 登入的對話框,那就成功了!

 

下面記錄在測試過程中,遇到的幾個問題:

Q1. 使用遠端電腦連到網站發生錯誤時,無法檢視到錯誤訊息與錯誤程式碼?

A1. 恩,系統訊息其實寫得很清楚,就是更改 web.config 的屬性;如果要將錯誤訊息導向目標頁面,可以建立相關的 <error statusCode > 網頁在專案中。

若要在遠端電腦檢視此特定錯誤訊息的詳細資訊,請於目前 Web 應用程式根目錄內的 "web.config" 組態檔中建立 <customErrors> 標記。然後將 <customErrors> 標記的 "mode" 屬性設為 "Off"。

可以藉由修改應用程式 <customErrors> 組態標記的 "defaultRedirect" 屬性,使其指向自訂錯誤頁面的 URL,以便使用自訂錯誤頁面取代您目前看到的錯誤頁面。

image 

image

Q2. 瀏覽網站時,發生應用程式中發生伺服器錯誤的訊息,怎麼辦?

A2. 在 IIS 建立網站後,常會忘了變更主目錄下的應用程式設定值,在該網站或該目錄資料夾下,變更與建立應用程式即可!

image 

image

image

 

恩,以上只做測試記錄,並不代表網站開發的驗證機制這樣做就是正確的!
如果其中有錯誤,也歡迎大家指教,因為小弟是網站程式開發新手... Orz