沒通過驗證的話(沒輸入Windows AD Server的帳號與密碼),一律導向到 Login的網頁。
登入成功後,會自動導回"原本你要去"的網頁
本文範例源自微軟MSDN -- 來自 ASP .NET 的 Active Directory 網域服務驗證
http://msdn.microsoft.com/zh-tw/library/ms180890.aspx
...............................................................................................................................................
這個範例的 優點:
1. 不需修改程式,直接套用即可運作。
因為程式碼也滿繁瑣的,有興趣的人自己看。
我建議您分成兩段來學習,不然的話,東西有點雜!
2. Web.Config檔裡面設定
「沒通過驗證的話(沒輸入Windows AD Server的帳號與密碼),一律導向到 Login的網頁」。
「登入成功後,會自動導回原本你要去的網頁」。光是這個功能,就很實用啦!
上述的設定,就是底下綠底的文字部分。
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<system.web>
<authentication mode="Forms">
<forms loginUrl="您寫的登入網頁_Login.aspx" name="adAuthCookie" timeout="10" path="/">
</forms>
</authentication>
<authorization>
<deny users="?"/> 註解: ? 表示匿名使用者,Anonymous User
<allow users="*"/>
</authorization>
<identity impersonate="true"/> 註解:重點在此!!
註解:此項目會使得 ASP.NET 模擬從 IIS設定為匿名帳戶的帳戶。由於此組態,所有對此應用程式發出的要求都會以已設定之帳戶的安全性內容執行。使用者必須提供認證以向 Active Directory 網域服務驗證,但只有已設定的帳戶可存取 Active Directory 網域服務。
詳見MSDN說明:http://msdn.microsoft.com/zh-tw/library/72wdk8cc%28v=vs.100%29.aspx
</system.web>
</configuration>
如果您要瞭解這一部分,我另外寫了一個範例為您示範。
會員登入 與 FormsAuthentication (Web.Config裡面的 authentication mode="Forms")
懂了這一段以後,下面的範例寫到 Windows AD,您至少會了上面這一半 (50%)。
不是整個範例 (100%)都是新學的。會比較輕鬆!
3. 輸入 AD網域名稱、帳號、密碼,驗證通過就能登入。
執行畫面如下
不管你從網站的哪一個網頁進入(即使輸入URL直通某一個網頁)
只要你沒通過帳號、密碼的檢驗,就會被「彈」到這個 Login畫面
乖乖輸入AD專屬的帳號、密碼,又會自動「彈回」你當初輸入URL、想要直達的網頁
有趣喔!
4. 其他網站的相關技巧
...............................................................................................................................................
前置作業:
1. 您必須有 Windows Server 2008(含)後續新版本所架設的AD 、使用者帳號。
2. 使用程式以前,動手在 Visual Studio 加入參考 -- System.DirectionaryServices.DLL檔
...............................................................................................................................................
因為MSDN只提供 C#版語法,所以我提供 VB語法給大家參考。
MSDN文件直接 Copy到 Visual Studio上開發,有些地方需要修改。
以下的版本我已經修改過了。
VS 2008 SP1 / VS 2010 / VS 2012 Update1三個版本我都測試過,沒問題。
範例下載:
C#版本:WebSite45_WindowsAD_CS.rar
VB版本:WebSite45_WindowsAD_VB.rar
相關文章
關於 Windows AD的連結字串寫法,請看這兩篇文章
Active Directory: LDAP Provider 連線字串格式 (小朱)
http://www.dotblogs.com.tw/regionbbs/archive/2008/11/07/5909.aspx
How can I figure out my LDAP connection string?
http://serverfault.com/questions/130543/how-can-i-figure-out-my-ldap-connection-string
2014/6/6補充:
謝謝這麼多人的分享 讓我又學到新的東西,希望對您有幫助。
分享,讓知識更加偉大
===== 本範例 已經收錄在書籍裡面 ======================================
|
下集(雙語法) 623元 超商取貨 免運費!
http://www.tenlong.com.tw/items/9572241729?item_id=620531
我將思想傳授他人, 他人之所得,亦無損於我之所有;
猶如一人以我的燭火點燭,光亮與他同在,我卻不因此身處黑暗。----Thomas Jefferson
線上課程教學,遠距教學 (Web Form 約51hr) https://dotblogs.com.tw/mis2000lab/2016/02/01/aspnet_online_learning_distance_education_VS2015
線上課程教學,遠距教學 (ASP.NET MVC 約75~88hr) https://dotblogs.com.tw/mis2000lab/2018/08/14/ASPnet_MVC_Online_Learning_MIS2000Lab
ASP.NET MVC線上課程 第一天 免費看 (5.5小時)
寫信給我,不要私訊 -- mis2000lab (at) yahoo.com.台灣 或 school (at) mis2000lab.net
ASP.NET遠距教學、線上課程(Web Form + MVC)。 第一天課程, "完整" 試聽。
................ facebook社團 https://www.facebook.com/mis2000lab ......................
................ YouTube (ASP.NET) 線上教學影片 https://www.youtube.com/channel/UC6IPPf6tvsNG8zX3u1LddvA/
Blog文章 "附的範例" 無法下載,請看 這裡 ...... https://dotblogs.com.tw/mis2000lab/2016/03/14/2008_2015_mis2000lab_sample_download
請看我們的「售後服務」範圍(嚴格認定)。
......................................................................................................................................................
[遠距教學、教學影片] ASP.NET (Web Form) 課程 上線了!MIS2000Lab.主講
事先錄製好的影片,並非上課時側錄! 觀看影片時,有如我「一對一」跟您面對面講課。

ASP.NET MVC 5 => .NET Core MVC 線上教學
累積時數約 95小時...... 第一天(5.5小時)完整內容,"免費"讓您評估
