ASP.NET 2.0中的登陆控件简介(3)
CreateUserWizard控件
使用该控件,可以很方便地一步步引导用户进行注册。拖拉其到设计窗体中,如下图:
当然,你可以对其属性进行更多地设置,比如,设置HeaderTemplate(头模版),StartNavigationTemplate(开始注册模版),FinishNavigationTemplate(结束注册模版)等,具体设置可以参考在线帮助。而该控件还允许当注册成功后向用户发邮件,比如:
<asp:CreateUserWizard runat="server">
<MailDefinition
BodyFileName="NewUserEmail.txt"
From="welcome@dorknozzle.com"
Subject="Welcome to the Dorknozzle site!"/>
</asp:CreateUserWizard>
而发邮件则需要在web.config文件中配置,比如:
<configuration>
<system.web>
<authentication mode="Forms"/>
<smtpMail serverName="Localhost"/>
</system.web>
</configuration>
PasswordRecovery密码恢复控件
该控件可以实现简单地密码提示恢复功能,并将密码email给用户,代码如下:
<asp:PasswordRecovery runat="server"> </asp:PasswordRecovery>
实现时如下图所示:
用户输入用户名后,则需要输入密码恢复的答案,如下图:
并在该控件中设置将恢复后的密码EMAIL给用户
<asp:PasswordRecovery runat="server">
<MailDefinition
BodyFileName="forgotpassword.txt"
From="helpdesk@dorknozzle.com"
Subject="Word has it, you forgot your password?"/>
</asp:PasswordRecovery>
ChangePassword 更改密码控件
更改密码控件可以很方便地实现密码的更改,包括一个 MailDefinition 属性。如果将值赋给 MailDefinition 属性,则 ChangePassword 控件在密码成功更改时将自动向用户发送一个电子邮件。
直接使用Membership API
有时候,需要对成员身份进行更高级别(比 Web 站点管理工具或 Login 控件提供的控制级别高)的控制。在这些情况下,可以直接使用 Membership API。
Membership API 是通过 Membership 类公开的。Membership 类包含的方法使您能够完成以下工作:创建新用户;更改密码;搜索与特定条件匹配的用户等等。在幕后,Login 控件使用这些方法与已配置的成员身份提供程序进行交互。
下面列出了 Membership 类的一些比较重要的方法:
CreateUser — 使您能够创建新用户。
DeleteUser — 使您能够删除现有用户。
FindUsersByEmail — 使您能够检索与某个特定的电子邮件地址匹配的用户集合。
FindUsersByName — 使您能够检索与某个特定的用户名匹配的用户集合。
GeneratePassword — 使您能够生成随机密码。
GetAllUsers — 使您能够检索成员身份提供程序中存储的所有用户。
GetNumberOfUsersOnline — 使您能够返回当前正在访问 Web 应用程序的用户数。
GetUser — 使您能够检索与当前用户相关联的成员身份信息,或者使您能够检索与某个已经提供用户名的用户相关联的成员身份信息。
GetUsernameByEmail — 使您能够检索具有某个特定电子邮件地址的用户的用户名。
UpdateUser — 使您能够更新特定用户的信息。
ValidateUser — 使您能够根据成员身份提供程序对用户进行身份验证。
最后,我们利用该API,实现稍微复杂的功能。在index.aspx中,添加一个label控件,显示在线的人数,代码如下:
Number of Users Online:
<asp:Label runat="server"/>
在PAGE-LOAD事件中,增加代码如下:
Sub Page_Load(s As Object, e As EventArgs) Handles MyBase.Load
lblNumUsersOnline.Text = _
Membership.GetNumberOfUsersOnline().ToString()
End Sub
则可以显示在线人数。我们并且再添加一个gridview,显示所有用户的在线状况,是否允许某种权限和相关的信息。
<asp:GridView runat="server" AutoGenerateColumns="False">
<Columns>
<asp:BoundField HeaderText="Username" DataField="Username" />
<asp:BoundField HeaderText="Is Online?" DataField="IsOnline" />
<asp:BoundField HeaderText="Is Approved?" DataField="IsApproved" />
<asp:BoundField HeaderText="Email" DataField="Email" />
</Columns>
</asp:GridView>
并将gridview绑定:
gvUsers.DataSource = Membership.GetAllUsers() ;
gvUsers.DataBind();
最后运行结果如下图:
总结:
本文以实际例子,介绍了asp.net 2.0中新增加的登陆系列控件的简单用法以及新增加的Membership API的简单使用,更多的请参考MSDN或正式版时的有关介绍。