黑马程序员技术交流社区

标题: Web窗体的高级控件(三) [打印本页]

作者: 黑马_黄开潮    时间: 2012-12-16 18:07
标题: Web窗体的高级控件(三)
之前看到这个文章,感觉真的很不错。有点长。有兴趣的朋友可以看下。
密码更改控件(ChangePassword)
在应用程序开发中,开发人员需要编写密码更改控件让用户能够快速的进行密码更改。在应用程序的使用中,用户会经常需要更改密码,更改密码有很多的可能性。例如用户进行登录后发现自己的用户信息可能被其他人改动过,就有可能怀疑密码泄露的问题,这样用户就可以通过更改密码进行密码的更换。另外,如果用户在注册时的密码是系统自动生成的密码,用户同样需要在密码更改控件中修改生成的密码以便用户记忆。
在ASP.NET中提供了密码更改控件以便开发人员能够轻易的完成密码更改功能。拖放一个密码更改控件在页面,系统会自动生成相应的HTML代码,示例代码如下所示。
        <asp:ChangePassword ID="ChangePassword1" runat="server">
        </asp:ChangePassword>
ChangePassword控件包括密码、新密码和确认新密码,如图6-12所示。

当用户需要更改密码时,用户必须先填写旧密码进行密码的验证,如果用户填写的旧密码是正确的密码,则系统会将新密码替换旧密码以便用户下次登录时使用新密码。如果用户填写的旧密码不正确,则系统会认为可能是一个非法用户而不允许更改密码。ChangePassword控件同样允许开发人员自动套用格式或者通过编写模板进行ChangePassword控件的样式布局,如图6-13所示。


开发人员能够自动套用格式进行更改密码控件的呈现,不仅如此,开发人员还能够单击右侧的功能导航进行模板的转换,转换成模板后开发人员就能够进行模板的自定义。ChangePassword控件可以使用Web.config中的membership配置节进行成员资格配置,所以ChangePassword控件能够实现不同场景的不同功能,这些功能如下所示。
 用户登录情况:开发人员能够使用ChangePassword控件允许用户在不登录的情况下进行密码的更改。
 更改用户密码:开发人员能够使用ChangePassword控件让一个登录的用户进行另一个用户的密码的更改。
在ChangePassword控件中,开发人员可以通过配置ChangePassword控件的相应属性进行ChangePassword控件的样式或者是功能的设置,这样能够保证在一定的安全范围内进行安全的用户信息操作。ChangePassword控件常用的属性如下所示。
 CancelButtonImageUrl:配置取消按钮控件的图片文本,该属性可以为按钮控件指定一个图片按钮进行呈现。
 CancelButtonStyle:配置取消按钮控件的样式和外观的属性集。
 ChangePasswordButtonType:配置更改密码控件的类型。
 ChangePasswordFailtureText:配置更改密码失败时所呈现的错误信息。
 ConfirmNewPassword:获取用户输入的重复密码的值。
 ConfirmPasswordCompareErrorMessage:当用户输入密码和输入验证密码出现错误时提示的错误消息。
 ConfimPasswordRequiredErrorMessage:当用户没有输入“确认新密码”时在控件中提示的错误消息。
 ContinueButtonImageUrl:为继续按钮配置一个图片文本,该属性可以为按钮控件指定一个图片按钮进行呈现。
 ContinueButtonStyle:为继续按钮配置样式或属性集。
开发人员能够配置相应的ChangePassword控件的属性进行不同的ChangePassword控件的样式呈现,以及功能实现。在ChangePassword控件中,有许多属性都是包括按钮或表格的样式的呈现的属性,这里就不再一一列举。

生成用户控件(CreateUserWizard)
生成用户控件(CreateUserWizard)为MembershipProvider对象提供了用户界面,使用该控件能够方便的让开发人员在页面中生成相应的用户,同时当用户访问该应用程序时,用户能够通过使用CreateUserWizard控件的相应的功能进行注册,如图6-14所示。

正如图6-14所示,CreateUserWizard控件默认包括多个文本框控件以便用户的输入,这里包括用户名、密码、确认密码、电子邮件、安全提示问题和问题答案等项目。其中用户名、密码、确认密码用于身份验证和数据插入为系统提供用户信息,而电子邮件和安全答案用于当用户忘记密码或更改密码时向用户发送相应的邮件以便提高系统身份认证的安全性。
开发人员能够将CreateUserWizard控件拖放在主窗口中进行页面呈现,这样就能够实现用户注册功能,当开发人员拖动CreateUserWizard在主窗口中是,系统会自动生成HTML代码,示例代码如下所示。
        <asp:CreateUserWizard ID="CreateUserWizard1" runat="server">
            <WizardSteps>
                <asp:CreateUserWizardStep runat="server" />
                <asp:CompleteWizardStep runat="server" />
            </WizardSteps>
        </asp:CreateUserWizard>
上述代码创建了一个CreateUserWizard控件进行用户注册功能的实现,开发人员还能够为CreateUserWizard控件中相应的模板进行样式控制。例如当用户注册完毕后,用户会跳转到一个页面提示“账户注册完毕,请登录”等等,这样就能提高用户体验。单击【自定义完成步骤】按钮或在快捷窗口下拉菜单中选择【完成】选项就能够进行完成模板的实现。

正如图6-14所示,CreateUserWizard控件默认包括多个文本框控件以便用户的输入,这里包括用户名、密码、确认密码、电子邮件、安全提示问题和问题答案等项目。其中用户名、密码、确认密码用于身份验证和数据插入为系统提供用户信息,而电子邮件和安全答案用于当用户忘记密码或更改密码时向用户发送相应的邮件以便提高系统身份认证的安全性。
开发人员能够将CreateUserWizard控件拖放在主窗口中进行页面呈现,这样就能够实现用户注册功能,当开发人员拖动CreateUserWizard在主窗口中是,系统会自动生成HTML代码,示例代码如下所示。
        <asp:CreateUserWizard ID="CreateUserWizard1" runat="server">
            <WizardSteps>
                <asp:CreateUserWizardStep runat="server" />
                <asp:CompleteWizardStep runat="server" />
            </WizardSteps>
        </asp:CreateUserWizard>
上述代码创建了一个CreateUserWizard控件进行用户注册功能的实现,开发人员还能够为CreateUserWizard控件中相应的模板进行样式控制。例如当用户注册完毕后,用户会跳转到一个页面提示“账户注册完毕,请登录”等等,这样就能提高用户体验。单击【自定义完成步骤】按钮或在快捷窗口下拉菜单中选择【完成】选项就能够进行完成模板的实现。
开发人员能够在完成步骤中编辑模板以便能够进行更多的提示和更好的用户体验,编辑完成模板后,系统会自动更改相应的代码,示例代码如下所示。
<asp:CreateUserWizard ID="CreateUserWizard1" runat="server" ActiveStepIndex="1">
    <WizardSteps>
        <asp:CreateUserWizardStep runat="server" />
        <asp:CompleteWizardStep runat="server">
        <ContentTemplate>
            <table border="0">
                <tr>
                    <td align="center">恭喜您!注册完毕!</td>
                </tr>
                <tr>
                    <td>已成功创建您的账户,请登录。</td>
                </tr>
                <tr>
                    <td align="right">
                    <asp:Button ID="ContinueButton" runat="server" CausesValidation="False"
                    CommandName="Continue" Text="继续" ValidationGroup="CreateUserWizard1" />
                    </td>
                </tr>
            </table>
        </ContentTemplate>
        </asp:CompleteWizardStep>
    </WizardSteps>
</asp:CreateUserWizard>
上述代码创建了一个完成注册的模板,开发人员还可以通过编写自定义创建用户模板以便更加方便的创建用户。CreateUserWizard控件还包括其他模板,这些模板能够方便开发人员进行更高的页面呈现,这些模板及其说明如下所示。
 HeadTemplate:获取或设置标题区的模板内容。
 SideBarTemplate:获取或设置侧边栏的模板内容。
 StartNavigationTemplate:获取或设置起始步骤中导航区域的模板内容。
 StepNavigationTemplate:获取或设置不同步骤中导航区域的模板内容。
 FinishNavigationTemplate:获取或设置结束步骤中导航区域的模板内容。
 ContentTemplate:获取或设置在创建用户模板和完成模板中的模板内容。
开发人员还能够通过HeadTemplate、SideBarTemplate等模板进行高级的CreateUserWizard控件的页面呈现和样式控制,这样不仅能够提高用户体验和友好度,还能够清晰的让用户按照步骤执行操作,降低了错误的出现率。






作者: 许庭洲    时间: 2012-12-16 20:08
值得学习ing!




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2