- .NET Web高級開發
- 羅江華 朱永光編著
- 979字
- 2018-12-29 13:19:41
1.2.4 登錄控件
成員身份服務本身就顯著減少了驗證登錄和管理用戶所需的代碼量,此外,還有一系列登錄控件使窗體身份驗證變得更加容易。它們是一個新的登錄控件提供生成塊,向站點添加身份驗證和基于授權的用戶界面,如登錄窗體、創建用戶的窗體、密碼檢索,以及已登錄的用戶或角色的自定義用戶界面。這些控件使用ASP.NET 2.0中內置的成員資格服務和角色服務,與站點中定義的用戶和角色信息交互。

圖1-15 Login控件
登錄控件可以與成員身份服務配合使用(在默認情況下,登錄控件與ASP.NET成員資格集成,以幫助使網站的用戶身份驗證過程自動化),也可以不與其配合使用,但它們與該服務之間的集成性非常好,以至于當登錄控件與成員身份服務一起使用時,一些基本任務(例如,驗證用戶名和密碼以及用電子郵件發送遺忘的密碼,如圖1-15所示)通常不必編寫任何代碼就可以完成。
圖1-15中所示的Login控件是登錄控件系列的核心控件。除了提供具有高度可自定義性的外觀顯示以外,它還能夠調用Membership.ValidateUser來驗證用戶名和密碼。Login控件還可以調用FormsAuthentication.RedirectFromLoginPage,將用戶重定向到他們在被重定向到登錄頁時嘗試到達的頁面。然后,FormsAuthentication.RedirectFromLoginPage將發出身份驗證Cookie。
在ASP.NET 2.0中有三種常見方式使用此控件,下面分別進行闡述。
1.使用默認的向導控件功能
默認的注冊向導的使用向導非常簡單,只要一行代碼就可以完成:
<asp: CreateUserWizard ID="CreateUserWizardControl" runat="server"/>
無需額外的代碼就能夠完成用戶的注冊,會將注冊的信息寫入到ASPNETDB.MDF數據庫中。
2.使用默認ID
但是有時使用默認向導實現的功能過于簡單,太死板,沒有靈活性。例如用戶名,如果要驗證用戶名必須是字母或者數字,此時利用上面的代碼就不能夠完成,因此不得不使用模板,或類似如下的代碼:
<asp:CreateUserWizard ID="CreateUserWizardControl" runat="server"> <WizardSteps> <asp:CreateUserWizardStep ID="CreateUserWizardStep1" runat="server" Title ="UserInfo"> <ContentTemplate> User Name: <asp:TextBox runat="server" ID="UserName" ></asp:TextBox> <asp:RequiredFieldValidator runat="server" ControlToValidate="UserName" ValidationGroup="CreateUserWizardControl" ErrorMessage="UserName is required." ToolTip="UserName is required." ID="UserNameRequired" Display="Dynamic"> </asp:RequiredFieldValidator> Password: <asp:TextBox runat="server" TextMode="Password" ID="Password"> </asp:TextBox> Confirm Password:<asp:TextBox runat="server" TextMode="Password" ID="ConfirmPassword"></asp:TextBox> </ContentTemplate> </asp:CreateUserWizardStep> </WizardSteps> </asp:CreateUserWizard>
在使用上面代碼時,請注意系統默認定義的ID,例如用戶名使用TextBox的ID只能是UserName,密碼使用的TextBox的ID只能夠是Password。你查看MSDN以了解CreateUserWizard更多的預定義ID。
3.用戶自定義ID
如果覺得使用微軟預定義的ID不方便,這時我們就可以自己來定義它。如想讓用戶的ID為txtName,密碼ID為txtPassword,如果你使用自定義的ID,系統將不能夠識別,這時你就需要自己獲取txtName和txtPassword的Text值了。具體處理較為煩瑣。因為您需要做如下步驟:
① 獲取用戶名;
② 獲取密碼;
③ 連接數據庫;
④ 將輸入寫入數據庫;
⑤ 關閉數據庫。
可以看到,不使用系統預定義的功能,你的工作量將大幅度增加。
- Microsoft Dynamics CRM Customization Essentials
- AutoCAD繪圖實用速查通典
- 計算機應用
- Oracle SOA Governance 11g Implementation
- PostgreSQL 11 Server Side Programming Quick Start Guide
- 輕松學Java
- 完全掌握AutoCAD 2008中文版:綜合篇
- 大數據平臺異常檢測分析系統的若干關鍵技術研究
- Moodle Course Design Best Practices
- 高維聚類知識發現關鍵技術研究及應用
- 運動控制系統
- Citrix? XenDesktop? 7 Cookbook
- 軟件構件技術
- 在實戰中成長:C++開發之路
- 基于敏捷開發的數據結構研究