PasswordStrength扩展器控件可以用来为让用户设置密码的ASP.NET TextBox控件添加即时的密码强度检测功能,并能将检测结果以文本、指示条等多种方式即时显示给用户。
示例运行效果:

图(1)

图(2)

图(3)

图(4)
PasswordStrengthDemo.aspx代码示例:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="PasswordStrengthDemo.aspx.cs" Inherits="Chapter09_PasswordStrengthDemo" %>

<!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>PasswordStrength Demo</title>
<link href="stylesheet.css" rel="stylesheet" type="text/css" />
<style type="text/css">
.TextIndicator_TextBox1
{
background-color:blue;
color:#FFFFFF;
padding: 2px 3px 2px 3px;
}

.BarIndicator_TextBox2
{
color:Blue;
background-color:Blue;
}

.BarBorder_TextBox2
{
border-style:solid;
border-width:1px;
width:200px;
vertical-align:middle;
}

.TextIndicator_TextBox3
{
background-color:Blue;
color:Yellow;
font-size:small;
font-variant:small-caps;
padding: 2px 3px 2px 3px;
}

.TextIndicator_TextBox3_Handle
{
width:16px;
height:14px;
background-image:url(images/Question.png);
overflow:hidden;
cursor:help;
}

</style>
</head>
<body>
<form id="PasswordStrengthForm" runat="server">
<asp:ScriptManager ID="sm" runat="server" />
<div class="demoheading">PasswordStrength Demonstration</div>
Simple Complexity, Text Indicator<br />
<asp:TextBox ID="TextBox1" Width="150" runat="server" /><br />
<asp:Label ID="TextBox1_HelpLabel" runat="server" /><br /><br />
<ajaxToolkit:PasswordStrength ID="ps1" runat="server"
TargetControlID="TextBox1"
DisplayPosition="RightSide"
StrengthIndicatorType="Text"
PreferredPasswordLength="10"
PrefixText="密码强度:"
HelpStatusLabelID="TextBox1_HelpLabel"
TextCssClass="TextIndicator_TextBox1"
TextStrengthDescriptions="很弱;弱;中等;强;极强"
MinimumNumericCharacters="0"
MinimumSymbolCharacters="0"
RequiresUpperAndLowerCaseCharacters="false" />
Average Complexity, Bar Indicator<br />
<asp:TextBox ID="TextBox2" Width="150" TextMode="Password" runat="server" /><br />
<asp:Label ID="TextBox2_HelpLabel" runat="server" /><br /><br />
<ajaxToolkit:PasswordStrength ID="ps2" runat="server"
TargetControlID="TextBox2"
DisplayPosition="RightSide"
StrengthIndicatorType="BarIndicator"
PreferredPasswordLength="15"
HelpStatusLabelID="TextBox2_HelpLabel"
BarIndicatorCssClass="BarIndicator_TextBox2"
BarBorderCssClass="BarBorder_TextBox2"
MinimumNumericCharacters="1"
MinimumSymbolCharacters="1"
RequiresUpperAndLowerCaseCharacters="true" />
High Complexity, Text Indicator, Help Indicator<br /><br />
<asp:TextBox ID="TextBox3" Width="150" runat="server" />
<ajaxToolkit:PasswordStrength ID="ps3" runat="server"
TargetControlID="TextBox3"
DisplayPosition="BelowLeft"
StrengthIndicatorType="Text"
PreferredPasswordLength="20"
PrefixText="密码强度:"
TextCssClass="TextIndicator_TextBox3"
MinimumNumericCharacters="2"
MinimumSymbolCharacters="2"
RequiresUpperAndLowerCaseCharacters="true"
TextStrengthDescriptions="非常弱;很弱;弱;中等;强;很强;非常强"
HelpHandleCssClass="TextIndicator_TextBox3_Handle"
HelpHandlePosition="LeftSide" />
<!--
TargetControlID:该扩展器目标TextBox控件的ID,即将要添加密码强度指示的TextBox的ID
StrengthIndicatorType:指示密码强度的方式,可选Text和Barindicator,分别代表文本方式和指示条方式
DisplayPosition:强度指示元素与目标TextBox之间的相对位置,可选AboveLeft(左上角)、AboveRight(右上角)、
BelowLeft(左下角)、BelowRight(右下角)、LeftSide(左边)以及RightSide(右边)六种
HelpStatusLabelID:用来帮助用户填写合乎要求的密码而设置的Label的ID。用户在输入密码时,该Label中的文字
将不断更新,以提示用户还应该输入何种类型的字符
TextStrengthDescriptions:用分号(;)链接起来的用来描述不同强度级别的字符串,例如“很弱;弱;中等;强;极强”,
必须满足从弱到强的顺序,且强度级别的数目要在2~10个之间
PrefixText:强度级别的前缀文字
TextCssClass:强度指示文本将应用的CSS Class
BarBorderCssClass:强度指示条的边框将应用的CSS Class
BarIndicatorCssClass:强度指示条将应用的CSS Class
HelpHandlePosition:帮助按钮与目标TextBox之间的相对位置,可选AboveLeft(左上角)、AboveRight(右上角)、
BelowLeft(左下角)、BelowRight(右下角)、LeftSide(左边)以及RightSide(右边)六种
HelpHandleCssClass:帮助按钮将应用的CSS Class
PreferredPasswordLength:强度级别要达到最高所需要的最少密码长度
MinimumNumericCharacters:强度级别要达到最高所需要的最少数字字符的个数
MinimumSymbolCharacters:强度级别要达到最高所需要的最少特殊字符(例如!@#$%等)的个数
RequiresUpperAndLowerCaseCharacters:密码中是否需要混合出现大小写字母才能够使强度级别达到最高
CalculationWeightings:用分号(;)连接起来的4个数值,用来设置计算密码强度时各种类型字符所占的权重,该
属性的默认值为50;15;15;20。由分号隔开的这4个数值的和必须为100,其格式为L;N;C;S,
其中:
L代表Length,即密码的长度在强度计算中的权重
N代表Number,即密码中数字的个数的强度计算中的权重
C代表Case,即密码中混杂的大小写字符的强度计算中的权重
S代表Symbol,即密码中的特殊字符(例如!@#$%)在强度计算中的权重
-->
</form>
</body>
</html>
示例运行效果:
图(1)
图(2)
图(3)
图(4)
PasswordStrengthDemo.aspx代码示例:




































































































































