(搬运).net起步 (自定义 ASP.NET CreateUserWizard 控件1)
2017-06-04 15:38
393 查看
一、connectionStrings
<connectionStrings />为数据库连接字符串,位于web.config中的configuration节点中<connectionStrings>
<add name="ConnectionString" connectionString="Integrated Security=sspi;server=服务器地址; (user=用户名;pwd=密码;)database=数据库名称"/>
</connectionStrings>
SqlConnectionStringBuilder 的 IntegratedSecurity 属性,对应 connectionString 中的I ntegrated Security,“Integrated Security”可以写成“trusted_connection”。为 True 时,使用当前的 Windows 帐户凭据进行身份验证,为 False 时,需要在连接中指定用户 ID 和密码。可识别的值为 True、False、Yes、No 以及与 True 等效的 SSPI。如果没有些则必须写上
uid=sa;pwd=123 之类的设置“uid”也可使用“User ID”,“pwd”也可换为“PassWord”。SSPI:Microsoft安全支持提供器接口(SSPI)是定义得较全面的公用API,用来获得验证、信息完整性、信息隐私等集成安全服务,以及用于所有分布式应用程序协议的安全方面的服务。应用程序协议设计者能够利用该接口获得不同的安全性服务而不必修改协议本身。
二、Forms验证方式
Forms验证方式,即表单验证方式,使用Forms验证需要再web.config文件的system.web节点中加入<authentication>节来使用表单认证,再制定登陆页面中(默认为login.aspx),如果身份验证通过,使用FormsAuthentication.SetAuthCookie()为用户创建一个身份验证的票据,并将其添加到Cookie中。<authentication mode="Forms">
<forms loginUrl="XX.aspx"/> //用于指定登陆页面url
<authentication>
asp.net还提供windows,passport等验证方式
三、用户注册控件的创建
可以使用CreateUserWizard控件的默认步骤模板 CreateUserWizardStep 和 CompleteWizardStep 模板来自定义 CreateUserWizard 控件的内容。通过指定模板的内容,您可以指定自己的自定义用户界面 (UI),该用户界面包括 CreateUserWizard 控件用于收集有关新用户的信息的控件,以及您指定的其他控件。此外,由于 CreateUserWizard 控件继承自 Wizard 类,因此可以向 CreateUserWizard 控件添加您自己的自定义步骤。3.1 自定义 CreateUserWizard 步骤
①将一个 CreateUserWizard 控件放在aspx页上。②若要自定义用户帐户创建步骤,请在 <asp:CreateUserWizardStep> 元素中创建一个 <ContentTemplate>元素。在该模板中,添加标记和控件来定义收集所需用户信息的用户界面布局和内容。
<asp:CreateUserWizard ID="CreateUserWizard1" runat="server" OnCreatedUser="CreateUserWizard1_CreatedUser"> <WizardSteps> <asp:CreateUserWizardStep ID="CreateUserWizardStep1" runat="server"> <ContentTemplate> <table border="0" style ="font-size :100%;font-family :Verdana "> <tr> <td align="center" colspan="2" style ="font-weight :bold ;color :white ;background-color:#5d7d9d">Sign Up for Your New Account</td> </tr> <tr> <td align="right"> <asp:Label ID="UserNameLabel" runat="server" AssociatedControlID="UserName">UserName:</asp:Label> </td> <td> <asp:TextBox ID="UserName" runat="server"></asp:TextBox> <asp:RequiredFieldValidator ID="UserNameRequired" runat="server" ControlToValidate="UserName" ErrorMessage="User Name is Required." ToolTip="User Name is Required." ValidationGroup="CreateUserWizard1">*</asp:RequiredFieldValidator> </td> </tr> <tr> <td align="right"> <asp:Label ID="PasswordLabel" runat="server" AssociatedControlID="Password">Password:</asp:Label> </td> <td> <asp:TextBox ID="Password" runat="server" TextMode="Password"></asp:TextBox> <asp:RequiredFieldValidator ID="PasswordRequired" runat="server" ControlToValidate="Password" ErrorMessage="Password is Required." ToolTip="。Password is Required." ValidationGroup="CreateUserWizard1">*</asp:RequiredFieldValidator> </td> </tr> <tr> <td align="right"> <asp:Label ID="ConfirmPasswordLabel" runat="server" AssociatedControlID="ConfirmPassword">ConfirmPassword:</asp:Label> </td> <td> <asp:TextBox ID="ConfirmPassword" runat="server" TextMode="Password"></asp:TextBox> <asp:RequiredFieldValidator ID="ConfirmPasswordRequired" runat="server" ControlToValidate="ConfirmPassword" ErrorMessage="ConfirmPassword is Required." ToolTip="ConfirmPassword is Required." ValidationGroup="CreateUserWizard1">*</asp:RequiredFieldValidator> </td> </tr> <tr> <td align="right"> <asp:Label ID="EmailLabel" runat="server" AssociatedControlID="Email">Email:</asp:Label> </td> <td> <asp:TextBox ID="Email" runat="server"></asp:TextBox> <asp:RequiredFieldValidator ID="EmailRequired" runat="server" ControlToValidate="Email" ErrorMessage="Email is Required." ToolTip="Email is Required." ValidationGroup="CreateUserWizard1">*</asp:RequiredFieldValidator> </td> </tr> <tr> <td align="right"> <asp:Label ID="QuestionLabel" runat="server" AssociatedControlID="Question">Security Question:</asp:Label> </td> <td> <asp:TextBox ID="Question" runat="server"></asp:TextBox> <asp:RequiredFieldValidator ID="QuestionRequired" runat="server" ControlToValidate="Question" ErrorMessage="Security Question is Required." ToolTip="Security Question is Required." ValidationGroup="CreateUserWizard1">*</asp:RequiredFieldValidator> </td> </tr> <tr> <td align="right"> <asp:Label ID="AnswerLabel" runat="server" AssociatedControlID="Answer">Security Answer:</asp:Label> </td> <td> <asp:TextBox ID="Answer" runat="server"></asp:TextBox> <asp:RequiredFieldValidator ID="AnswerRequired" runat="server" ControlToValidate="Answer" ErrorMessage="Security Answer is Required." ToolTip="Security Answer is Required." ValidationGroup="CreateUserWizard1">*</asp:RequiredFieldValidator> </td> </tr> <tr> <td align="center" colspan="2"> <asp:CompareValidator ID="PasswordCompare" runat="server" ControlToCompare="Password" ControlToValidate="ConfirmPassword" Display="Dynamic" ErrorMessage="The Password and Confirmation Password must match." 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> <asp:CheckBox ID ="SubscribeCheckBox" runat ="server" Checked ="true" Text ="Send me a monthly newsletter." /> <br /> <asp:CheckBox ID ="ShareInfoCheckBox" runat ="server" Checked ="true" Text ="Share my information with partner sites." /> </ContentTemplate> </asp:CreateUserWizardStep>PS:1.font-family:Verdana 设置字体
2.AssociatedControlID 是用在 Asp.Net 中的 Label 控件上。给label控件关联一个ASP.NET的控件,在点击 这个 LABEL的时候,所关联的ASP.NET控件会获得焦点。
3.RequiredFieldValidator
控件用于使输入控件成为一个必选字段。通过该控件,如果输入值的初始值未改变,那么验证将失败。默认地,初始值是空字符串 ("")。其中,ControlToValidate属性是要验证的控件的 id, ToolTip属性是设置的当鼠标悬浮在一个控件上时所显示的文本,ValidationGroup属性是获取或设置在 Button 控件回发到服务器时要进行验证的控件组,通常在表单中存在多个按钮时使用该属性。
4.CompareValidator 控件用于将由用户输入到输入控件的值与输入到其他输入控件的值或常数值进行比较。其中,ControlToCompare是要与所验证的输入控件进行比较的输入控件,ControlToValidate是要验证的输入控件的 ID,Display是验证控件中错误信息的显示行为,其合法值是None 验证消息从不内联显示;Static 在页面布局中分配用于显示验证消息的空间;Dynamic 如果验证失败,将用于显示验证消息的空间动态添加到页面
5.Literal 控件用于在页面上显示文本,此文本是可编程的,其属性EnableViewState若设为false,则每次页面刷新,控件中的数据将重新从数据库中检索。
③ 若要自定义完成步骤,请在 <asp:CompleteWizardStep> 元素中创建一个 <ContentTemplate> 元素。在该模板中,添加标记和控件来定义用于显示确认消息及使用户定位以继续(可选)的用户界面的布局和内容。
<asp:CompleteWizardStep ID="CompleteWizardStep1" runat="server"> <ContentTemplate> <table border="0" style="font-size:100%;font-family:Verdana" id="TABLE1"> <tr> <td align="center" style="font-weight:bold;color:white;background-color:#5d7b9d;height:18px;">Complete</td> </tr> <tr> <td>Your account has been successfully created.<br /><br /> <asp:Label ID ="SubscribeLabel" runat="server" Text="Your have elected to receive our monthly newsletter."></asp:Label> <br /><br /> <asp:Label ID="ShareInfoLabel" runat="server" Text="Your have elected to share your information with partner sites."></asp:Label> </td> </tr> <tr><td align="right"> <asp:Button ID="ContinueButton" runat="server" BackColor="#FFFBFF" BorderColor="#CCCCCC" BorderStyle="Solid" BorderWidth ="1px" CausesValidation="False" CommandName="Continu 95f8 e" Font-Names="Verdana" ForeColor ="#284775" Text="Continue" ValidationGroup="CreateUserWizard1" /> </td></tr> </table> </ContentTemplate> </asp:CompleteWizardStep>
④添加代码以引用其他控件。例如,通过处理 CreatingUser 事件,可以在创建新的用户帐户之前输入代码以收集、验证和修改信息。
下面的代码示例演示引用前面示例中的 CheckBox 控件的 CreatedUser 事件的处理程序,并将它们添加到新创建的用户帐户的 Comment 属性。您将需要向页上的CreateUserWizard 控件添加一 个 OnCreatedUser 属 性 , 该 控 件 引 用 CreatedUser 事 件 的 处 理 程 序 ( 例如 OnCreatedUser="CreateUserWizard1_CreatedUser"。)
注意:我们需要添加命名空间 using System.Web.Security;的引用.
按照下图所示创建 CreatedUser 事件的处理程序:
protected void CreateUserWizard1_CreatedUser(object sender, EventArgs e) { CheckBox subscribeCheckBox = (CheckBox)CreateUserWizard1.CreateUserStep.ContentTemplateContainer.FindControl("SubscribeCheckBox"); CheckBox shareInfoCheckBox = (CheckBox)CreateUserWizard1.CreateUserStep.ContentTemplateContainer.FindControl("ShareInfoCheckBox"); TextBox userNameTextBox = (TextBox)CreateUserWizardStep1.ContentTemplateContainer.FindControl("UserName"); MembershipUser user = Membership.GetUser(userNameTextBox.Text); user.Comment = "Subscribe=" + subscribeCheckBox.Checked.ToString() + "&" + "shareInfo=" + shareInfoCheckBox.Checked.ToString(); Membership.UpdateUser(user); Label subscribeLabel = (Label)CreateUserWizard1.CompleteStep.ContentTemplateContainer.FindControl("SubscribeLabel"); Label shareInfoLabel = (Label)CreateUserWizard1.CompleteStep.ContentTemplateContainer.FindControl("ShareInfoLabel"); subscribeLabel.Visible = subscribeCheckBox.Checked; shareInfoLabel.Visible = shareInfoCheckBox.Checked; }
相关文章推荐
- 如何:自定义 ASP.NET CreateUserWizard 控件
- ASP.NET - 如何:自定义 ASP.NET CreateUserWizard 控件
- ASP.NET - 如何:自定义 ASP.NET CreateUserWizard 控件
- (搬运).net起步 (自定义 PasswordRecovery 控件)
- 自定义asp.net控件分析
- 自定义asp.net控件分析(二)
- 自定义asp.net控件分析
- 利用 ASP.NET 2.0 创建自定义 Web 控件
- 利用 ASP.NET 2.0 创建自定义 Web 控件
- 用 ASP.NET 2.0 创建自定义 Web 控件
- ASP.NET 实践:自定义 SiteMapPath 控件的外观
- Asp.net自定义服务器控件开发小技巧: 如何正确获得回传数据
- 自定义asp.net控件分析 (一)
- 利用 ASP.NET 2.0 创建自定义 Web 控件
- 利用 ASP.NET 2.0 创建自定义 Web 控件
- Asp.net中翻页问题的自定义用户控件
- 如何给Asp.Net表格或控件加上自定义的提示框?
- asp.net中自定义验证控件的简单用法
- 利用 ASP.NET 2.0 创建自定义 Web 控件
- Asp.net Web控件自定义类属性(经验篇)