asp.net 2.0中,新增了許多新的功能和控件。其中,新增的登陸控件可謂使得WEB應用的設計更加得心應手。什麼是登陸控件呢?就是我們平常在WEB應用中經常要用到的用戶注冊,登陸,忘記密碼,登陸後根據權限的不同而顯示不同的頁面等功能,現在在asp.net 2.0中都已經可以由提供的控件來實現了。ASP.NET 2.0中的登陸控件比較多,封裝了大部分WEB應用中要實現系統登陸的系列功能,涉及到很多方面,本文將簡單介紹一下它們的主要功能。
首先,asp.net 2.0中,為了更方便創建和管理用戶,以及對 Web 應用程序中的頁進行密碼保護,引進了新的框架membership。新的框架包含用於處理身份驗證和授權的新增功能,能夠同時滿足 Web 站點管理員和開發人員的需要。Web 站點管理員可以利用新的 Web 站點管理工具來創建新的用戶和角色,以及控制對 Web 應用程序中頁面的訪問。Web 站點管理工具是一組預先編寫的 ASP.NET頁,不具備編程技巧的用戶可以使用它們來配置 Web 應用程序。利用membership API,編程人員可以很方便地使用拖拉控件的方法,再加以少量的代碼,就可以完全實現對用戶,角色權限等的管理,還可以自定義做擴充。
其中,membership框架中包含了兩個默認的用戶驗證程序:默認的 AccessMembershipProvider以及 SqlMembershipProvider。如果希望在 Microsoft SQL Server 數據庫中存儲成員身份信息,則可以將應用程序配置為使用 SqlMembershipProvider,如果要使用access數據庫,則使用AccessMembershipProvider。還可以創建自定義成員身份提供程序。例如,如果需要在 XML 文件、或 Oracle 數據庫中存儲成員身份信息,希望創建自己的成員身份提供程序,則需要實現抽象類MembershipProvider 的所有方法和屬性。本文中,將以access數據庫為例子做說明,所以使用Accessmembershipprovider。
我們可以使用asp.net 2.0自帶的WEB站點安全配置工具,就可以無需編程,在系統向導的帶領下,自動建立一個存儲用戶角色身份的數據庫了。比如,我們現在需要建立一個access的數據庫,裡面存儲用戶名,密碼,密碼提示問題,用戶EMAIL等資料,則可以通過web站點安全配置工具來實現。步驟如下:
1)先使用visual studio express 2005建立一個WEB站點,命名為Dorknozzle,使用VB.NET語言,之後,我們點選Visual studio express中的WebSite菜單中的ASP.NET Configuration,這時會彈出一個新的頁面窗口,其中選擇Security選項,如下圖:
2) 從上圖可以看到,安全設置選項被分為三部分:用戶,角色和規則。由於我們是第一次配置,選擇“To configure security step by step, use the Security Setup Wizard”,在出現的界面點“NEXT”進入下一步。
在第二步中,你可以選擇驗證的類型,比如你的站點是發布在internet還是intranet,再點next進入下一步,系統會提示目前是使用AspnetAccessProvider ,繼續點下一步,系統會詢問是否創建基於角色的應用,如果應用中要用到角色,就必須將那個單選框打勾,本文不選擇該項,繼續下一步。
3) 此時,系統會詢問我們輸入創建用戶的信息,如下圖,比如輸入用戶名,密碼,EMAIL等信息。在輸入後,點NEXT進入下一步。
4)系統會允許你對某一用戶進行有關規則的詳細設置,比如允許某一用戶行駛或拒絕使用某角色等。本文將忽略不用,繼續選NEXT進下一步,此時,完成了系統的初步配置了。
此時,AccessMembershipProvider會自動在當前工程的data目錄下,創建一個AspNetDB的ACCESS數據文件,打開它,會發現自動生成了相關的表格,比如有aspnet_users表,存放用戶的基本信息,aspnet_membership表,存放用戶加密的密碼和其他信息。
在進行完上面的步驟後,下面我們開始認識並使用asp.net 2.0中的登陸控件。這些控件在工具箱的Login選項組中,共有Login, LoginView, PasswordRecovery, LoginStatus, LoginName, CreateUserWizard, ChangePassword 共7個,下面逐一介紹: