首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 开源 FAQ 第二书店 博文视点 程序员
频道: 研发 数据库 中间件 信息化 视频 .NET Java 游戏 移动 服务: 人才 外包 培训
    图书品种:235680
       
热门搜索: ASP.NET Ajax Spring Hibernate Java

1.6  使用ChangePassword控件

用户(或系统管理员)可以通过ChangePassword控件来修改用户密码。代码清单1-30中的页面展示了如何使用该控件。

代码清单1-30  ShowChangePassword.aspx

<%@ Page Language="C#" %>

<!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 id="Head1" runat="server">

    <style type="text/css">

        .changePassword

        {

            font:14px Verdana,Sans-Serif;

            background-color:lightblue;

            border:solid 3px black;

            padding:4px;

        }

        .changePassword_title

        {

            background-color:darkblue;

            color:white;

            font-weight:bold;

        }

        .changePassword_instructions

        {

            font-size:12px;

            text-align:left;

            padding:10px;

        }

        .changePassword_button

        {

            border:solid 1px black;

            padding:3px;

        }

    </style>

    <title>Show ChangePassword</title>

</head>

<body>

    <form id="form1" runat="server">

    <div>

   

    <asp:LoginName ID="LoginName1" runat="server" />

   

    <asp:ChangePassword

        id="ChangePassword1"

        InstructionText="Complete this form to create

            a new password."

        DisplayUserName="true"

        ContinueDestinationPageUrl="~/Default.aspx"

        CancelDestinationPageUrl="~/Default.aspx"

        CssClass="changePassword"       

        TitleTextStyle-CssClass="changePassword_title"

        InstructionTextStyle-CssClass="changePassword_instructions"

        ChangePasswordButtonStyle-CssClass="changePassword_button"

        CancelButtonStyle-CssClass="changePassword_button"

        ContinueButtonStyle-CssClass="changePassword_button"

        Runat="server" />

   

    </div>

    </form>

</body>

</html>

代码清单1-30中的表单包含了输入用户名、旧密码、新密码和新密码确认四个表单项(见图1-13)。该表单提交后,用户的旧密码将更改为新密码。

需要注意的是,代码清单1-29中的ChangePassword控件包含了一个DisplayUserName属性。当启用这个属性后,控件将会输出用户名表单项。当在Web应用程序页面中放置密码保护项时,不需要包含DisplayUserName属性。因为在该示例中,ChangePassword控件将自动使用当前用户的名称。

图1-13  使用ChangePassword控件修改用户密码

1.6.1  发送电子邮件通知密码更改

当用户修改了密码后,可以通过该ChangePassword控件自动发送一封包含了新密码的电子邮件通知。代码清单1-31中的页面即包含了用于自动发送电子邮件通知的ChangePassword控件。

注解   即使用户的密码通过Membership提供器进行了加密或散列,仍然可以通过电子邮件通知进行发送。

代码清单1-31  ChangePasswordEmail.aspx

<%@ Page Language="C#" %>

<!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 id="Head1" runat="server">

    <title>ChangePassword Email</title>

</head>

<body>

    <form id="form1" runat="server">

    <div>

    <asp:ChangePassword

        id="ChangePassword1"

        DisplayUserName="true"

        Runat="server">

        <MailDefinition

            From="Admin@YourSite.com"

            BodyFileName="ChangePassword.txt"

            Subject="Your New Password" />

    </asp:ChangePassword>

       

    </div>

    </form>

</body>

</html>

需要注意的是,代码清单1-31中的ChangePassword控件包含了一个MailDefinition属性,该属性用于定义ChangePassword控件将发送的电子邮件通知。代码清单1-32中的文本文件包含了该ChangePassword控件发送的电子邮件通知的内容。

代码清单1-32  ChangePassword.txt

<%UserName%>,

your new password is <%Password%>.

代码清单1-32中的电子邮件通知包含了两个特殊的表达式:<% UserName %>和<% Password %>。当发送电子邮件时,这两个表达式将使用该用户的用户名和密码来进行替换。

注解   MailDefinition类使用Web配置文件中smtp节点配置的电子邮件服务器端。要了解更多关于smtp节点的配置信息,可以见1.3.2节。

1.6.2  在ChangePassword控件中使用模板

如果要彻底修改ChangePassword控件的外观,那么可以使用模板来对该控件进行定制。ChangePassword控件支持ChangePasswordTemplate和SuccessTemplate两类模板。

代码清单1-33中的页面示例了如何使用ChangePassword控件所支持的这两类模板(见图1-14)。

图1-14  使用模板来自定义ChangePassword控件

代码清单1-33  ChangePasswordTemplate.aspx

<%@ Page Language="C#" %>

<!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 id="Head1" runat="server">

    <title>ChangePassword Template</title>

</head>

<body>

    <form id="form1" runat="server">

    <div>

   

    <asp:ChangePassword

        id="ChangePassword1"

        DisplayUserName="true"

        Runat="server">

        <ChangePasswordTemplate>

            <h1>Change Password</h1>

            <asp:Label

                id="FailureText"

                EnableViewState="false"

                ForeColor="Red"

                Runat="server" />

            <br />

            <asp:Label

                id="lblUserName"

                Text="User Name:"

                AssociatedControlID="UserName"

                Runat="server" />

            <br />

            <asp:TextBox

                id="UserName"

                Runat="server" />

            <br /><br />

            <asp:Label

                id="lblCurrentPassword"

                Text="Current Password:"

                AssociatedControlID="CurrentPassword"

                Runat="server" />

            <br />

            <asp:TextBox

                id="CurrentPassword"

                TextMode="Password"

                Runat="server" />

            <br /><br />

            <asp:Label

                id="lblNewPassword"

                Text="New Password:"

                AssociatedControlID="NewPassword"

                Runat="server" />

            <br />

            <asp:TextBox

                id="NewPassword"

                TextMode="Password"

                Runat="server" />

            <br /><br />

            <asp:Button

                id="btnChangePassword"

                Text="Change Password"

                CommandName="ChangePassword"

                Runat="server" />       

        </ChangePasswordTemplate>

        <SuccessTemplate>

            Your password has been changed!

        </SuccessTemplate>   

    </asp:ChangePassword>

   

    </div>

    </form>

</body>

</html>

可以在ChangePasswordTemplate模板中使用以下特定ID的控件:

q UserName

q CurrentPassword

q ConfirmPassword

q NewPassword

q FailureText

同时还可以添加具有以下CommandName属性值的Button控件:

q ChangePassword

q Cancel

q Continue

查看所有评论(0)条】

最近评论



正在载入评论列表...
热点评论