16.5登录控件
16.5 登录控件
知识点讲解:光盘:视频\PPT讲解(知识点)\第16章\登录控件.mp4
ASP.NET为程序员提供了登录控件,通过这些控件,只需使用简单的设置即可实现身份验证功能,而无需编写大量的代码。还可以实现注册、登录、修改密码和取回密码功能。在本节的内容中,将详细讲解ASP.NET中登录控件的基本知识。
16.5.1 登录控件
程序员可以使用Visual Studio 2012方便地添加一个Login.aspx页面,并在该页面上放置一个登录控件(Login控件),然后使用属性窗口对该控件进行配置。具体代码格式如下。
<asp:Login ID="Login1" runat="server" CreateUserText="没有注册?"
CreateUserUrl="Register.aspx" PasswordRecoveryText="忘记密码?"
PasswordRecoveryUrl="PasswordRecovery.aspx"/>
其中,CreateUserText属性表示创建用户链接的字符串;CreateUserUrl属性表示创建用户的链接地址;PasswordRecoveryText属性表示取回密码链接的字符串;PasswordRecoveryUrl属性表示取回密码的链接地址。
16.5.2 用户向导控件
用户向导控件(CreateUserWizard控件)为用户注册页面服务,注册链接的地址为Register.aspx,因此需要创建一个Register.aspx页面,用于注册操作。在页面上放置一个Create UserWizard控件。具体代码格式如下。
<asp:CreateUserWizard ID="CreateUserWizard1" runat="server"
ContinueDestinationPageUrl="Default.aspx" />
其中,ContinueDestinationPageUrl属性表示注册完成后转向的页面地址。之后,会创建Default.aspx页面,以显示登录名和登录状态等信息。
当新用户注册后,系统会自动为用户登录。在默认情况下密码需要有一定的强度(最短长度为7位,并且必须包含1个非字母的数字字符)。可以通过修改Web.config文件来改变这个设定,例如下面的配置段为成员资格指定了一个MyAspNetSqlProvider的Provider,并设定密码最短长度为6位,不需要包含任何非字母的数字字符(<system.web>节点下)。
<membership defaultProvider="MyAspNetSqlProvider">
<providers>
<add name="MyAspNetSqlProvider" type="System.Web.Security.
SqlMembershipProvider" connectionStringName="LocalSqlServer"
minRequiredPasswordLength="6" minRequiredNonalphanumericCharacters="0"
applicationName="/"/>
</providers>
</membership>
另外,还需要指定用于成员资格服务的数据库连接字符串(<configuration>节点下)。
<connectionStrings>
<add name="LocalSqlServer" connectionString="data source=xxx;Integrated
Security=SSPI;AttachDBFilename=|DataDirectory|aspnetdb.mdf;User Instance=true"
providerName="System.Data.SqlClient" />
</connectionStrings>
16.5.3 密码恢复控件
设置Login控件的PasswordRecoveryUrl属性后,会新建一个用于密码恢复(取回密码)操作的页面PasswordRecovery.aspx。在该页面上放置一个密码恢复控件(PasswordRecovery控件)。密码恢复的过程如下。
(1)输入用户名。
(2)输入该用户密码问题的答案。
(3)如果答案正确,则系统会把新的密码发送到用户的邮箱中。
为此,需要在Web.config文件的<configuration>节点下新增SMTP邮件服务器的配置,具体代码如下。
<system.net>
<mailSettings>
<smtp from="发件人的邮件地址">
<network host="SMTP邮件服务器名" port="端口(默认25)" password="" userName="" />
</smtp>
</mailSettings>
</system.net>
16.5.4 修改密码控件
用户在登录后可能还会希望进行密码修改操作,为此可以创建一个ChangePassword.aspx页面,然后在该页面上放置一个修改密码控件(ChangePassword控件)。具体代码如下。
<asp:ChangePassword ID="ChangePassword1" runat="server" ContinueDestinationPageUrl=
"Default.aspx"/>
在上述代码中,设置了ContinueDestinationPageUrl属性为Default.aspx,表示在修改密码后让系统转到Default.aspx页面。
16.5.5 其他控件
除了注册、登录和密码操作外,还有可能用到如下操作。
- 为没有登录的用户提供登录操作,为已经登录的用户提供退出操作。
- 显示已经登录的用户名。
- 为已登录和未登录的用户显示不同的信息。
要实现上述3个操作,可以分别使用LoginStatus、LoginName和LoginView控件来完成。
- LoginStatus控件会自动根据用户是否登录来显示“登录”链接或者“退出”链接。当然,也可以把文字换成图片。
- LoginName控件可以按照一定的格式来显示登录的用户名。
- LoginView控件提供了LoggedInTemplate和AnonymousTemplate等模板,其中LoggedInTemplate模板中的内容会在登录后显示,而AnonymousTemplate模板中的内容会在未登录时显示。
例如下面的代码。
<asp:LoginStatus ID="LoginStatus1" runat="server" />
<asp:LoginName ID="LoginName1" runat="server" FormatString="您好:{0}"/>
<asp:LoginView ID="LoginView1" runat="server">
<LoggedInTemplate>
<a href="ChangePassword.aspx">修改密码</a>
</LoggedInTemplate>
<AnonymousTemplate>
<a href="PasswordRecovery.aspx">恢复密码</a>
</AnonymousTemplate>
</asp:LoginView>
上一篇:16.4基于表单的身份验证
下一篇:16.6网站管理工具