利用profile + CreateUserWizard控件实现 自定义用户项用户注册
前台将.net2.0注册控件拖放进页面进入自定义后,加入需要的项目后,在控制代码里取值,通过profileCommon对象存入profile数据库。代码:
1.UI
<asp:CreateUserWizard ID="CreateUserWizard1" runat="server" RequireEmail="False" BackColor="#FFFBD6" BorderColor="#FFDFAD" BorderStyle="Solid" BorderWidth="1px" Font-Names="Verdana" Width="300px" ContinueDestinationPageUrl="~/Default.aspx">
<WizardSteps>
<asp:CreateUserWizardStep runat="server">
<ContentTemplate>
<table border="0" width="300">
<tr>
<td align="center" colspan="2" style="height:22px">
注册新帐户</td>
</tr>
<tr>
<td align="right">
<asp:Label ID="UserNameLabel" runat="server" AssociatedControlID="UserName">用户名:</asp:Label></td>
<td align="left">
<asp:TextBox ID="UserName" runat="server" Width="140px"></asp:TextBox>
<asp:RequiredFieldValidator ID="UserNameRequired" runat="server" ControlToValidate="UserName"
ErrorMessage="必须填写“用户名”。" ToolTip="必须填写“用户名”。" ValidationGroup="CreateUserWizard1">*</asp:RequiredFieldValidator>
</td>
</tr>
<tr>
<td align="right">
<asp:Label ID="PasswordLabel" runat="server" AssociatedControlID="Password">密码:</asp:Label></td>
<td align="left">
<asp:TextBox ID="Password" runat="server" TextMode="Password" Width="140px"></asp:TextBox>
<asp:RequiredFieldValidator ID="PasswordRequired" runat="server" ControlToValidate="Password"
ErrorMessage="必须填写“密码”。" ToolTip="必须填写“密码”。" ValidationGroup="CreateUserWizard1">*</asp:RequiredFieldValidator>
</td>
</tr>
<tr>
<td align="right">
<asp:Label ID="ConfirmPasswordLabel" runat="server" AssociatedControlID="ConfirmPassword">确认密码:</asp:Label></td>
<td align="left">
<asp:TextBox ID="ConfirmPassword" runat="server" TextMode="Password" Width="140px"></asp:TextBox>
<asp:RequiredFieldValidator ID="ConfirmPasswordRequired" runat="server" ControlToValidate="ConfirmPassword"
ErrorMessage="必须填写“确认密码”。" ToolTip="必须填写“确认密码”。" ValidationGroup="CreateUserWizard1">*</asp:RequiredFieldValidator>
</td>
</tr>
<tr>
<td align="right">
姓名:</td>
<td align="left">
<asp:TextBox ID="name" runat="server" Width="140px"></asp:TextBox> </td>
</tr>
<tr>
<td align="center" colspan="2">
<asp:CompareValidator ID="PasswordCompare" runat="server" ControlToCompare="Password"
ControlToValidate="ConfirmPassword" Display="Dynamic" ErrorMessage="“密码”和“确认密码”必须匹配。"
ValidationGroup="CreateUserWizard1"></asp:CompareValidator>
</td>
</tr>
<tr>
<td align="center" colspan="2" style="color: red">
<asp:Literal ID="ErrorMessage" runat="server" EnableViewState="False"></asp:Literal>
</td>
</tr>
</table>
</ContentTemplate>
</asp:CreateUserWizardStep>
<asp:CompleteWizardStep AllowReturn="false" runat="server">
<ContentTemplate>
<table border="0" style="font-size: 100%; font-family: Verdana; background-color: #fffbd6"
width="300">
<tr>
<td align="center" colspan="2" style="font-weight: bold; color: white; background-color: #990000">
完成</td>
</tr>
<tr>
<td align="center">
已成功创建您的帐户。</td>
</tr>
<tr>
<td align="center" colspan="2">
<asp:Button ID="ContinueButton" runat="server" BackColor="White" BorderColor="#CC9966"
BorderStyle="Solid" BorderWidth="1px" CausesValidation="False" CommandName="Continue"
Font-Names="Verdana" ForeColor="#990000" Text="恭喜,注册成功!" ValidationGroup="CreateUserWizard1" />
</td>
</tr>
</table>
</ContentTemplate>
</asp:CompleteWizardStep>
</WizardSteps>
<SideBarStyle BackColor="#990000" VerticalAlign="Top" />
<TitleTextStyle BackColor="#990000" Font-Bold="True" ForeColor="White" />
<SideBarButtonStyle ForeColor="White" />
<NavigationButtonStyle BackColor="White" BorderColor="#CC9966" BorderStyle="Solid"
BorderWidth="1px" Font-Names="Verdana" ForeColor="#990000" />
<HeaderStyle BackColor="#FFCC66" BorderColor="#FFFBD6" BorderStyle="Solid" BorderWidth="2px"
Font-Bold="True" ForeColor="#333333" HorizontalAlign="Center" />
<CreateUserButtonStyle BackColor="White" BorderColor="#CC9966" BorderStyle="Solid"
BorderWidth="1px" Font-Names="Verdana" ForeColor="#990000" />
<ContinueButtonStyle BackColor="White" BorderColor="#CC9966" BorderStyle="Solid"
BorderWidth="1px" Font-Names="Verdana" ForeColor="#990000" />
<FinishCompleteButtonStyle BackColor="#C0FFFF" />
</asp:CreateUserWizard>
2.控制代码
Protected Sub CreateUserWizard1_CreatedUser(ByVal sender As Object, ByVal e As System.EventArgs) Handles CreateUserWizard1.CreatedUser
Dim pc As ProfileCommon = New ProfileCommon()
Dim name As String = CType(CreateUserWizard1.CreateUserStep.ContentTemplateContainer.FindControl("name"), TextBox).Text.Trim()
pc.Initialize(CreateUserWizard1.UserName, True) '初始化当前用户的属性值。
pc.UserName = name
pc.Save()
End Sub
1.UI
<asp:CreateUserWizard ID="CreateUserWizard1" runat="server" RequireEmail="False" BackColor="#FFFBD6" BorderColor="#FFDFAD" BorderStyle="Solid" BorderWidth="1px" Font-Names="Verdana" Width="300px" ContinueDestinationPageUrl="~/Default.aspx">
<WizardSteps>
<asp:CreateUserWizardStep runat="server">
<ContentTemplate>
<table border="0" width="300">
<tr>
<td align="center" colspan="2" style="height:22px">
注册新帐户</td>
</tr>
<tr>
<td align="right">
<asp:Label ID="UserNameLabel" runat="server" AssociatedControlID="UserName">用户名:</asp:Label></td>
<td align="left">
<asp:TextBox ID="UserName" runat="server" Width="140px"></asp:TextBox>
<asp:RequiredFieldValidator ID="UserNameRequired" runat="server" ControlToValidate="UserName"
ErrorMessage="必须填写“用户名”。" ToolTip="必须填写“用户名”。" ValidationGroup="CreateUserWizard1">*</asp:RequiredFieldValidator>
</td>
</tr>
<tr>
<td align="right">
<asp:Label ID="PasswordLabel" runat="server" AssociatedControlID="Password">密码:</asp:Label></td>
<td align="left">
<asp:TextBox ID="Password" runat="server" TextMode="Password" Width="140px"></asp:TextBox>
<asp:RequiredFieldValidator ID="PasswordRequired" runat="server" ControlToValidate="Password"
ErrorMessage="必须填写“密码”。" ToolTip="必须填写“密码”。" ValidationGroup="CreateUserWizard1">*</asp:RequiredFieldValidator>
</td>
</tr>
<tr>
<td align="right">
<asp:Label ID="ConfirmPasswordLabel" runat="server" AssociatedControlID="ConfirmPassword">确认密码:</asp:Label></td>
<td align="left">
<asp:TextBox ID="ConfirmPassword" runat="server" TextMode="Password" Width="140px"></asp:TextBox>
<asp:RequiredFieldValidator ID="ConfirmPasswordRequired" runat="server" ControlToValidate="ConfirmPassword"
ErrorMessage="必须填写“确认密码”。" ToolTip="必须填写“确认密码”。" ValidationGroup="CreateUserWizard1">*</asp:RequiredFieldValidator>
</td>
</tr>
<tr>
<td align="right">
姓名:</td>
<td align="left">
<asp:TextBox ID="name" runat="server" Width="140px"></asp:TextBox> </td>
</tr>
<tr>
<td align="center" colspan="2">
<asp:CompareValidator ID="PasswordCompare" runat="server" ControlToCompare="Password"
ControlToValidate="ConfirmPassword" Display="Dynamic" ErrorMessage="“密码”和“确认密码”必须匹配。"
ValidationGroup="CreateUserWizard1"></asp:CompareValidator>
</td>
</tr>
<tr>
<td align="center" colspan="2" style="color: red">
<asp:Literal ID="ErrorMessage" runat="server" EnableViewState="False"></asp:Literal>
</td>
</tr>
</table>
</ContentTemplate>
</asp:CreateUserWizardStep>
<asp:CompleteWizardStep AllowReturn="false" runat="server">
<ContentTemplate>
<table border="0" style="font-size: 100%; font-family: Verdana; background-color: #fffbd6"
width="300">
<tr>
<td align="center" colspan="2" style="font-weight: bold; color: white; background-color: #990000">
完成</td>
</tr>
<tr>
<td align="center">
已成功创建您的帐户。</td>
</tr>
<tr>
<td align="center" colspan="2">
<asp:Button ID="ContinueButton" runat="server" BackColor="White" BorderColor="#CC9966"
BorderStyle="Solid" BorderWidth="1px" CausesValidation="False" CommandName="Continue"
Font-Names="Verdana" ForeColor="#990000" Text="恭喜,注册成功!" ValidationGroup="CreateUserWizard1" />
</td>
</tr>
</table>
</ContentTemplate>
</asp:CompleteWizardStep>
</WizardSteps>
<SideBarStyle BackColor="#990000" VerticalAlign="Top" />
<TitleTextStyle BackColor="#990000" Font-Bold="True" ForeColor="White" />
<SideBarButtonStyle ForeColor="White" />
<NavigationButtonStyle BackColor="White" BorderColor="#CC9966" BorderStyle="Solid"
BorderWidth="1px" Font-Names="Verdana" ForeColor="#990000" />
<HeaderStyle BackColor="#FFCC66" BorderColor="#FFFBD6" BorderStyle="Solid" BorderWidth="2px"
Font-Bold="True" ForeColor="#333333" HorizontalAlign="Center" />
<CreateUserButtonStyle BackColor="White" BorderColor="#CC9966" BorderStyle="Solid"
BorderWidth="1px" Font-Names="Verdana" ForeColor="#990000" />
<ContinueButtonStyle BackColor="White" BorderColor="#CC9966" BorderStyle="Solid"
BorderWidth="1px" Font-Names="Verdana" ForeColor="#990000" />
<FinishCompleteButtonStyle BackColor="#C0FFFF" />
</asp:CreateUserWizard>
2.控制代码
Protected Sub CreateUserWizard1_CreatedUser(ByVal sender As Object, ByVal e As System.EventArgs) Handles CreateUserWizard1.CreatedUser
Dim pc As ProfileCommon = New ProfileCommon()
Dim name As String = CType(CreateUserWizard1.CreateUserStep.ContentTemplateContainer.FindControl("name"), TextBox).Text.Trim()
pc.Initialize(CreateUserWizard1.UserName, True) '初始化当前用户的属性值。
pc.UserName = name
pc.Save()
End Sub