ASP.NET提供了如下七种与用户管理相关的控件: 1. Login控件:实现用户登录(输入为用户名和密码) 2. LoginView控件:实现在匿名用户和登录用户的不同视图,可在其中设计用户在两种状态下所见的不同控件组合 3. PasswordRecovery控件:用于密码恢复(以后详细使用的时候再做介绍) 4. LoginStatus控件:用于通过用户状态(匿名/登录)显示Login/Logout的样式 5. LoginName控件:在用户登录的情况下表示用户名 6. CreateUserWizard控件:定义用户注册时需要填写的表单信息,直接完成用户的注册工作 7. ChangePassword控件:完成密码变更操作 现在我们来通过以上的Login、LoginView、LoginStatus、LoginName和CreateUserWizard控件实现简单的带有登录/注册功能的Web应用程序。 首先我们要先在web.config中完成配置用户数据库的工作,前提是读者已经使用aspnet_regsql注册了数据库应用程序服务,如果有不明白的地方,参加ScottGu的文章<Configuring ASP.NET 2.0 Application Services to use sql server 2000 or sql server 2005>,虽然是英文但是里面有图示,简单明了。 然后我们修改web.config文件如下: 1.添加数据库连接字符串
<connectionStrings>
<remove name="LocalSqlServer"/>
<add name="LocalSqlServer" connectionString="Data Source=localhost;Initial Catalog=RickTsueiDB;Integrated Security=True" providerName="System.Data.SqlClient"/>
</connectionStrings>
2.将表单验证方式修改为Forms验证并设置Membership相关设置,Forms设置中的DefaultUrl和LoginUrl分别是我们的首页和登录页面所在的URL地址,填写后登录相关控件会直接找到这些页面。
<authentication mode="Forms">
<forms defaultUrl="~/Default.aspx" loginUrl="~/User/SignIn.aspx"/>
</authentication>
<membership defaultProvider="CustomizedProvider">
<providers>
<add name="CustomizedProvider" type="System.Web.Security.SqlMembershipProvider" connectionStringName="localSqlServer" applicationName="ScottsProject" minRequiredPasswordLength="5" minRequiredNonalphanumericCharacters="0"/>
</providers>
</membership>
下面我们进入正题,首先我们要有三个页面和一个控件,三个页面分别是Default.aspx(首页)、SignIn.aspx(注册页面)和CreateUser.aspx(用户注册页面);一个控件是LoginControl.ascx(用户登录状态控件)。 LoginControl.ascx控件 .
<%@ Control Language="vb" AutoEventWireup="false" CodeBehind="LoginUserControl.ascx.vb" Inherits="Com.RickTsuei.UIC.LoginUserControl" %>
<asp:LoginView ID="LoginView1" runat="server">
<AnonymousTemplate>
<asp:LoginStatus ID="LoginStatus_Login" runat="server" LoginText="登录" LogoutText="退出" />
| <a href="../User/CreateUser.aspx">注册</a>
</AnonymousTemplate>
<LoggedInTemplate>
<asp:LoginName ID="LoginName1" runat="server" />
|
<asp:LoginStatus ID="LoginStatus_Logout" runat="server" LoginText="登录" LogoutText="退出" />
</LoggedInTemplate>
</asp:LoginView>
本文作者: