ASP.NET2.0 Provider模型(一)

來源:互聯網
上載者:User

    在ASP.NET2.0提供許多諸如成員(Membership),Roles(角色),Profiles(自訂配置)等特性。這些特性都構建在基於Provider的模型之上。本系列文章將揭開該模型神秘的面紗並引導您建立自己的Provider模型

   在本文開始前,我們將總體概括一下Provider模型背後的整體關係,看一下它是如何解決對於每一個開發人員都面對的問題的。


Provider模型需求之因

   我們先介紹一下需要Provider模型的原因。

 
    考慮一個典型的使用者註冊登陸系統,這些系統允許您建立,管理和驗證使用者。開發人員需要自己編寫代碼來執行這些必須的資料訪問。例如為了檢驗使用者是否合法,您不得不建立一個登陸頁面,讓使用者輸入登陸頁面所必須的憑證,然後您需要通過查詢資料庫來檢查使用者輸入的憑證是否有效,並根據該結果來判斷使用者是否能夠進入網站。


   這種做法很好,但是您是否考慮過您已經不止一次的重寫這些類似的代碼?幾乎對於每一個商務應用程式,開發人員自己都需要重複這些相同的步驟。如果我們大致回顧一下這個過程,您可能會利用傳統的“拷貝-粘貼”或者組件的方式來重用這些代碼。確實,這種解決方案在某些情況下做的很棒,但是如果基礎資料庫以及驗證模型不同了,你該怎麼辦? 當然,你可以重新修改代碼來產生新版本的組件。

  難道我們不能夠為開發人員在它們的應用程式裡提供一個具有廣泛共性的邏輯模型嗎?這種模型可以不受基礎資料庫或者商務邏輯處理的影響,這就是我們本文介紹的Provider模型

 

Provider一瞥

 

   上面這張圖說明了Provider模型的堆棧模型,在底層你可以指定你具體資料庫的使用,該資料庫最終用來存放真實的資料。這裡的資料庫可以是SQL Server,Access資料庫,也可以是其它類型如Oracle資料庫  


    資料庫並不會直接保露在你的代碼裡,為了從應用程式裡分離出來,所有的對資料庫的訪問都會通過Provider類進行接管。例如你利用SQL Server存放資料,並使用了成員關係membership,那麼你就可以使用SqlMembershipProvider類來封裝對資料庫訪問的商務邏輯。你還可以建立你自己的Provider模型

 

   接下去的一層是一個類--該類是Membership類(對於其它的Provider模型,會有相應的類與之對應,例如使用者配置對應Profile類,角色管理對應Roles類)。  使用者介面(這裡的介面可以是web表單,可以是內建的諸如Login,CreateUserWizard登陸控制項)使用Membership類來進行工作。Membership類又會調用其下的provider類,。
 
   使用Provider模型來後可以簡單到僅僅調用CreateUser()和ValidateUser()這兩個完成類似的建立和驗證使用者的工作,很簡單和整潔,不是嗎?

ASP.NET2.0可以利用的Providers模型

 下面列出了ASP.NET2.0已經提供的Providers模型

 成員Provider(Membership Provider):驗證您網站的使用者

 角色Provider(Role Provider):授權您網站的使用者

  檔案Provider(Profile Provider):用於個人化您網站的設定

導航Provider(SiteMap Provider):使用網站地圖(web.sitemap)來導航你的網站

會話Provider(Session State Store Provider):利用基礎資料庫存放Session

 

正如你所看到的,整合它們將使得開發人員的工具變得簡單,它們都可以通過web.config進行配置,以便指向你自己的資料庫

 

總結

本文總體概括了ASP.NET2.0的Provider模型,在接下來的一節,我們將看看這些模型的執行過程

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.