注意:相應的軟件產品正式發行之前,本文檔已經撰寫完畢,所以我們不能保證本文檔內涉及的細節與最終產品完全一致。文中信息描述的是本文檔發布之時的產品,僅供在規劃時參考之用。如有更改,恕不另行通知。 我編譯了許多 microsoft® asp.net 應用程序,例如客戶端應用程序和原型、我自己不斷增長的站點和幫助不會編程的家人和朋友所開發的站點,以及文章、演示文稿和培訓課程的代碼。我經常發現自己在編譯每個應用程序時,總有某些重復的任務要做,這其中很大一部分是定義驗證模型。保護應用程序資源幾乎是設計任何應用程序時必不可少的一項工作。asp.net 1.x 讓事情變得簡單了些,它提供了一個頗為簡單和安全的、基于表單的驗證進程,但您仍要糾纏于角色管理和其他工作之中。如果每設計一個新登錄表單可以掙 5 美分,那么我現在至少已經掙了 10 多美元,算一算,我設計了多少個表單。即將發行的新版本 asp.net 的開發代號是“whidbey”(與即將發行的新版本 microsoft® visual studio® .net 的開發代號一致),它提供了許多新的配置工具、控件和組件,以支持用于驗證用戶和管理受保護資源的完整系統。這些新功能十分直觀易用,即使您的祖母也能在一天內構建一個安全站點。
直觀易用的功能 按照傳統做法,為新 web 站點構建一個驗證模型通常包括以下步驟:
收集受保護資源和活動的要求,并定義適當的角色和權限。 設計關系數據庫表,以存儲用戶、角色及相關權限。 設計登錄頁面。 編寫代碼,以驗證用戶并收集關聯的角色和權限。 添加配置,以基于角色來保護 web 資源。 編寫代碼,以基于角色和權限來控制頁面內容。 即使只是構建幾個可重復使用的組件來封裝上述某些重復性任務,您仍會感到肩上的工作負擔減輕了不少。asp.net whidbey 的新組件大大減少了上述步驟中的五個步驟的工作量,至少將其減少為了原來工作量的一部分。我將使用新的基于 web 的管理向導來自動創建一組表,以處理用戶、角色和權限。在同一個管理界面中,我還會就登錄、成員身份和角色管理對應用程序進行配置。我將在一秒鐘(或者說僅僅是在 web 表單中拖放一個登錄控件的時間)之內設計出一個登錄頁面,而且我根本不用編寫一行用于驗證用戶或關聯角色的代碼,因為這些會自動完成。根據用戶角色和登錄狀態的不同,呈現的菜單和頁面內容也將不同,但我同樣無需為此編寫任何代碼。
是不是有夢想成真的感覺?讓我們看看這是如何實現的。
配置界面 asp.net whidbey 包括一個新的基于 web 的配置工具,它運行于特定應用程序的上下文中,這樣便可以通過交互的方式來修改應用程序自身的 web.config 文件。該工具帶有許多向導,其中一個可以引導您完成設置安全選項的全部步驟。使用 visual studio“whidbey”完成新 web 站點的創建后,您可以通過兩種方法啟動該配置工具:從“solution explorer”(解決方案資源瀏覽器)中選擇“asp.net configuration”(asp.net 配置)圖標或從“website”(站點)菜單中選擇“asp.net configuration”(asp.net 配置)。
圖 1:從“solution explorer”(解決方案資源瀏覽器)或主菜單啟動基于 web 的配置實用工具。
配置 web 界面啟動時會顯示一個查詢字符串,指示要配置的應用程序目標。在本文中,我創建了一個名為“mysecurenewsletter”的新應用程序,并啟動了管理界面,如下所示:
membershipusercollection members = membership.getallusers (); arraylist arr = new arraylist (); foreach (membershipuser member in members) { arr.add (member); }
雖然此提供程序模型主要旨在簡化 web 應用程序的表單驗證,但也可用于創建并管理用戶和角色的任意驗證方案,還可執行通用活動,如密碼重設、密碼加密和用戶驗證。
小結 asp.net whidbey 中的新組件和體系結構功能令人贊嘆不已。新功能真正讓人欣賞之處在于,您可以輕易地把各種功能組合在一起,構建成一個完整的應用程序,此外,對于需要具有可伸縮性的企業級應用程序,您可以非常容易地擴展這些功能。安全性也有了顯著的加強。使用新模型使我們可以和使用 xml 配置文件開發可憐的“演示代碼”說再見(這些 xml 配置文件保存未加密的憑據,并增加了服務器的文件訪問負載)。當截至日期臨近時,我們經常冒險發行演示代碼。為什么不在第一次就開發出正確的代碼呢?現在唯一欠缺的是心靈感應設備驅動程序,可以將我的想法實時轉換成代碼。
作者簡介 michele leroux bustamante 既是 idesign inc. 和 international .net speakers association (ineta) 的一位成員,也是 microsoft 的地區主管,同時,她還是一位公開發表作品的撰稿人。在 idesign,michele 用自己豐富的背景知識致力于 .net 培訓和高端的企業咨詢。她主要研究 c# 語言、.net framework 體系架構、asp.net 和 web 服務,同時還為技術主管提供指導。可以通過這個地址:[email protected] 與她聯系,或訪問 idesign:.net design and business solutions(英文)以獲得更多信息。此外,也可以訪問 .net dashboard(英文),訂閱她的 .net 電子通訊月刊。