这一篇开始讲解如何快速添加一个新用户,非常的简单,首先在我们上一篇建好的网站中新建一个UserReg.aspx页,加入一个CreateUserWizard控件,在设计视图下选中控件,在控件的属性栏里的“行为”里把ContinueDestination的URL设定为创建完新用户后点击“继续”按键你想要转到的页面。我这里设的是Default.aspx,也就是当注册完成后点“继续”会转到Default.aspx这一页,当然,我们还要在Default.aspx中做一些设置用来查看我们刚注册完成的用户的相关信息。
UserReg.aspx具体内容如下:

<%...@ Page Language="C#" AutoEventWireup="true" CodeFile="UserReg.aspx.cs" Inherits="UserReg" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>用户注册</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:CreateUserWizard ID="CreateUserWizard1" runat="server" BackColor="#F7F6F3" BorderColor="#E6E2D8"
BorderStyle="Solid" BorderWidth="1px" Font-Names="Verdana" Font-Size="0.8em" ContinueDestinationPageUrl="~/Default.aspx">
<WizardSteps>
<asp:CreateUserWizardStep runat="server">
</asp:CreateUserWizardStep>
<asp:CompleteWizardStep runat="server">
</asp:CompleteWizardStep>
</WizardSteps>
<SideBarStyle BackColor="#5D7B9D" BorderWidth="0px" Font-Size="0.9em" VerticalAlign="Top" />
<TitleTextStyle BackColor="#5D7B9D" Font-Bold="True" ForeColor="White" />
<SideBarButtonStyle BorderWidth="0px" Font-Names="Verdana" ForeColor="White" />
<NavigationButtonStyle BackColor="#FFFBFF" BorderColor="#CCCCCC" BorderStyle="Solid"
BorderWidth="1px" Font-Names="Verdana" ForeColor="#284775" />
<HeaderStyle BackColor="#5D7B9D" BorderStyle="Solid" Font-Bold="True" Font-Size="0.9em"
ForeColor="White" HorizontalAlign="Center" />
<CreateUserButtonStyle BackColor="#FFFBFF" BorderColor="#CCCCCC" BorderStyle="Solid"
BorderWidth="1px" Font-Names="Verdana" ForeColor="#284775" />
<ContinueButtonStyle BackColor="#FFFBFF" BorderColor="#CCCCCC" BorderStyle="Solid"
BorderWidth="1px" Font-Names="Verdana" ForeColor="#284775" />
<StepStyle BorderWidth="0px" />
</asp:CreateUserWizard>
</div>
</form>
</body>
</html>在Default.aspx.CS页面中,我们要显示出当面用户的名字,邮箱地址,注册时间,上一次登录的时间等:
protected void Page_Load(object sender, EventArgs e)
...{
if (User.Identity.IsAuthenticated)//判断当前用户是否已登录
...{
MembershipUser u = Membership.GetUser(User.Identity.Name);//用当前用户进行实例化
Response.Write(u.UserName + "</p>");//用户名字
Response.Write(u.Email + "</p>");//用户EMAIL
Response.Write(u.CreationDate + "</p>"); //用户注册时间
Response.Write(u.LastActivityDate + "</p>"); //用户上一次登录时间
}
else
...{
Response.Write("请先登录");
}
}然后在Default.aspx页面里添加一个LoginStatus控件,这个控件可以根据用户是否登录而分别显示出“登录”及“注销”两种状态。接下来我们还要再新一个Login.aspx页面做为我们的登录页,在页面里加入一个Login控件,之后可以修改一下Login控件的属性,DestinationPageUrl="~/Default.aspx"设定登录后默认转到的页面,CreateUserText="注册" CreateUserUrl="~/UserReg.aspx"设定点击注册后转到的注册页地址,PasswordRecoveryText="忘记密码" PasswordRecoveryUrl="~/ResetPassword.aspx"设定点击忘记密码后转到找回密码的页面地址

<%...@ Page Language="C#" AutoEventWireup="true" CodeFile="Login.aspx.cs" Inherits="Login" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>无标题页</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:Login ID="Login1" runat="server" BackColor="#F7F6F3" BorderColor="#E6E2D8" BorderPadding="4"
BorderStyle="Solid" BorderWidth="1px" CreateUserText="注册" CreateUserUrl="~/UserReg.aspx"
Font-Names="Verdana" Font-Size="0.8em" ForeColor="#333333" PasswordRecoveryText="忘记密码"
PasswordRecoveryUrl="~/ResetPassword.aspx" DestinationPageUrl="~/Default.aspx" >
<TitleTextStyle BackColor="#5D7B9D" Font-Bold="True" Font-Size="0.9em" ForeColor="White" />
<InstructionTextStyle Font-Italic="True" ForeColor="Black" />
<TextBoxStyle Font-Size="0.8em" />
<LoginButtonStyle BackColor="#FFFBFF" BorderColor="#CCCCCC" BorderStyle="Solid" BorderWidth="1px"
Font-Names="Verdana" Font-Size="0.8em" ForeColor="#284775" />
</asp:Login> </div>
</form>
</body>
</html>接下来我们还要再建一个页面ResetPassword.aspx用来找回密码,在页面中添加一个PasswordRecovery控件,当忘记了密码转到这个页面时,它首先会让你输入用户名,之后输入密码问题的答案,如果正确的话就把新密码发到你的邮箱里,我的电脑没有设置SMTP所以不能发邮件,这个功能大家自己试吧!

<%...@ Page Language="C#" AutoEventWireup="true" CodeFile="ResetPassword.aspx.cs" Inherits="ResetPassword" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>无标题页</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:PasswordRecovery ID="PasswordRecovery1" runat="server" BackColor="#F7F6F3" BorderColor="#E6E2D8"
BorderPadding="4" BorderStyle="Solid" BorderWidth="1px" Font-Names="Verdana"
Font-Size="0.8em">
<InstructionTextStyle Font-Italic="True" ForeColor="Black" />
<SuccessTextStyle Font-Bold="True" ForeColor="#5D7B9D" />
<TextBoxStyle Font-Size="0.8em" />
<TitleTextStyle BackColor="#5D7B9D" Font-Bold="True" Font-Size="0.9em" ForeColor="White" />
<SubmitButtonStyle BackColor="#FFFBFF" BorderColor="#CCCCCC" BorderStyle="Solid"
BorderWidth="1px" Font-Names="Verdana" Font-Size="0.8em" ForeColor="#284775" />
</asp:PasswordRecovery>
</div>
</form>
</body>
</html> 呵呵,验证工作可以告一段落了,糟糕,忘记了一件重要的事情,忘记在Web.Config里设定要保护的页面了,我们搞验证不就为的这个么?
先在网站里建立一个文件夹“ADMIN”在这个文件夹里新建一个Admin.aspx文件,在这个文件里先随便打几个字“Admin OK!!!”,然后再打开Web.config加入:
<location path="Admin">
<system.web>
<authorization>
<deny users="?" />
</authorization>
</system.web>
</location>要注意这段代码是加在</system.web>和</configuration>中间的,<deny users="?" />这句话的意思是拒绝所有非授权用户访问ADMIN文件夹。
好了,这下基本上就完成了,大家自已开始试验吧,下一篇开始介绍角色创建及管理。