![]() |
![]() |
4)系统会允许你对某一用户进行有关规则的详细设置,比如允许某一用户行驶或拒绝使用某角色等。本文将忽略不用,继续选NEXT进下一步,此时,完成了系统的初步配置了。
此时,AccessMembershipProvider会自动在当前工程的data目录下,创建一个AspNetDB的ACCESS数据文件,打开它,会发现自动生成了相关的表格,比如有aspnet_users表,存放用户的基本信息,aspnet_membership表,存放用户加密的密码和其他信息。
在进行完上面的步骤后,下面我们开始认识并使用asp.net 2.0中的登陆控件。这些控件在工具箱的Login选项组中,共有Login, LoginView, PasswordRecovery, LoginStatus, LoginName, CreateUserWizard, ChangePassword 共7个,下面逐一介绍:
Login控件
拖拉一个Login控件到窗体中,就发现和平时见到的登陆窗口差不多了,在该控件的属性窗口中,比较重要的是DestinationPageUrl 属性,该属性将指定用户在登陆后跳转的页面,而FailureText表示登陆失败后提示的文本,CreateUserText表示创建新用户的提示文本,PasswordRecoveryText表示提示密码的文本,PasswordRecoveryUrl表示实现密码提示恢复功能的链接,此外可以设置其很多属性,比如显示用户名,密码的文本,登陆按钮PasswordRecoveryUrl的文本等,都十分简单,大家可以去试一下,初步设置属性后的登陆框如下图:
![]() |
<form runat="server"> Welcome <asp:LoginName id="lnUser" runat="server"/>, your login was successful!<br /><br /> <asp:LoginStatus id="lsUSer" runat="server"/> </form> |
![]() |
<asp:LoginView id="lvDorknozzle" runat="server"> <LoggedInTemplate> Welcome <asp:LoginName id="lnUser" runat="server"/> </LoggedInTemplate> <AnonymousTemplate> Welcome to the Dorknozzle site!<br /> Please click on the New User link to register on our site. </AnonymousTemplate> </asp:LoginView> |
![]() CreateUserWizard控件 使用该控件,可以很方便地一步步引导用户进行注册。拖拉其到设计窗体中,如下图:
当然,你可以对其属性进行更多地设置,比如,设置HeaderTemplate(头模版),StartNavigationTemplate(开始注册模版),FinishNavigationTemplate(结束注册模版)等,具体设置可以参考在线帮助。而该控件还允许当注册成功后向用户发邮件,比如:
而发邮件则需要在web.config文件中配置,比如:
PasswordRecovery密码恢复控件 该控件可以实现简单地密码提示恢复功能,并将密码email给用户,代码如下:
实现时如下图所示:
用户输入用户名后,则需要输入密码恢复的答案,如下图:
并在该控件中设置将恢复后的密码EMAIL给用户
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控件,显示在线的人数,代码如下:
在PAGE-LOAD事件中,增加代码如下:
则可以显示在线人数。我们并且再添加一个gridview,显示所有用户的在线状况,是否允许某种权限和相关的信息。
并将gridview绑定:
最后运行结果如下图:
总结: 本文以实际例子,介绍了asp.net 2.0中新增加的登陆系列控件的简单用法以及新增加的Membership API的简单使用,更多的请参考MSDN或正式版时的有关介绍。 |