ASP.NET透過AD進行驗證 #4 -- 會員登入、會員專屬網頁 / Login AD Account

沒通過驗證的話(沒輸入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補充:

ASP.NET C# AD驗證登入(使用LDAP群組cn,ou,dc寫法)
 
ASP.NET C# AD驗證登入(使用LDAP,WinNT)
 
利用 Active Directory 來驗證帳號
 
好多現成範例在這裡--   Howto: (Almost) Everything In Active Directory via C#

 

 

謝謝這麼多人的分享     讓我又學到新的東西,希望對您有幫助。

分享,讓知識更加偉大

 

 

 

===== 本範例 已經收錄在書籍裡面 ======================================

 

微軟MVP的ASP.NET 4.5專題實務II:範例應用與4.5新功能|MIS2000 Lab. 周棟祥、吳進魯|9789572241721/9572241729|松崗
 
$820 79折 $648 

 

 

下集(雙語法)  623元  超商取貨  免運費!

    http://www.tenlong.com.tw/items/9572241729?item_id=620531

 

 

 
.......................以下是廣告........................................................................................
 
 
我的書、我的課程,絕對沒有太多招數
 
都是用最基本的技巧
組合成各種變化。
 
如同詠春拳,三個套路,
排列組合、變化萬千
 
 
 
 
 
 
與其到處  Copy範例、到處抄襲程式碼(找到了也改不動)
 
為什麼不一次學好、學清楚?
 
然後讓自己有生產力呢?
(你學了一百招,但上了戰場,一招都使不出來?)
(客戶的要求,沒有一個你能自己做到?還是上網逐一發問、抄抄改改?)
 
 
為什麼人家可以千變萬化?
 
我只能到處拼拼湊湊?卻還天天加班、做不完?最後還是迷迷糊糊?
 
 
 
 
   如何一以貫之
         如何啟動「輕輕鬆鬆的自我學習之道」?
 
 
讓我告訴你,
一個沒有大型補習班招牌、沒有關鍵字廣告的書籍與課程
 
 
在時局這麼亂、經濟與工作越來越蕭條的  Bumbler 無能年代
 
為何所有補習班的 ASP.NET課程都開不成、招不到學生
 
我的課程,班班額滿,欲罷不能.............縱貫這三四年 全台灣 的 ASP.NET入門教學
 
 
 
 

 
 

我將思想傳授他人, 他人之所得,亦無損於我之所有;

猶如一人以我的燭火點燭,光亮與他同在,我卻不因此身處黑暗。----Thomas Jefferson

線上課程,遠距教學 (Web Form 49hr)  https://dotblogs.com.tw/mis2000lab/2016/02/01/aspnet_online_learning_distance_education_VS2015

線上課程,遠距教學 (ASP.NET MVC 75hr)  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 線上教學

累積時數約 75小時...... 第一天(5.5小時)完整內容,"免費"讓您評估