Atlas学习手记(16):使用PasswordStrength检测密码强度

PasswordStrengthAtlasControlToolkit在最新版本里面提供的一个检测密码强度的Extender,它支持两种文本提示和进度条提示两种方式。

 

主要内容

1PasswordStrength介绍

2.完整示例

 

一.PasswordStrength介绍

PasswordStrengthAtlasControlToolkit在最新版本里面提供的一个检测密码强度的Extender,它支持两种文本提示和进度条提示两种方式。示例代码:

<atlasToolkit:PasswordStrength ID="PS" runat="server">
    
<atlasToolkit:PasswordStrengthExtenderProperties

        
TargetControlID="TextBox1"

        DisplayPosition
="RightSide"

        StrengthIndicatorType
="Text"

        PreferredPasswordLength
="10"

        PrefixText
="Strength:"

        TextCssClass
="TextIndicator_TextBox1"

        MinimumNumericCharacters
="0"

        MinimumSymbolCharacters
="0"

        RequiresUpperAndLowerCaseCharacters
="false"

        TextStrengthDescriptions
="Very Poor;Weak;Average;Strong;Excellent" />

</atlasToolkit:PasswordStrength>

主要属性如下:

属性

描述

TargetControlID

要检测密码的TextBox控件ID

DisplayPosition

提示的信息的位置,如:

DisplayPosition="RightSide|LeftSide| BelowLeft"

StrengthIndicatorType

强度信息提示方式,有文本和进度条

StrengthIndicatorType="Text| BarIndicator"

PreferredPasswordLength

密码的长度

PrefixText

用文本方式时开头的文字

PrefixText="强度:"

TextCssClass

用文本方时文字的CSS样式

MinimumNumericCharacters

密码中最少要包含的数字数量

MinimumSymbolCharacters

密码中最好要包含的符号数量(*#

RequiresUpperAndLowerCaseCharacters

是否需要区分大小写

TextStrengthDescriptions

文本方式时的文字提示信息

TextStrengthDescriptions="极弱;;中等;;超强"

BarIndicatorCssClass

进度条的CSS样式

BarBorderCssClass

进度条边框的CSS样式

HelpStatusLabelID

帮助提示信息的Lable控件ID

二.完整示例

下面看一个完整的示例(主要要用最新版本的AtlasControlToolkit),新建Web Site后,同样在ASPX页面中加入命名空间的声明:

<%@ Register Assembly="AtlasControlToolkit" 

            Namespace
="AtlasControlToolkit" 

            TagPrefix
="atlasToolkit" 
%>

在页面中加入三个TextBox,分别来演示三种情况的密码检测,第一个使用文本方式提示,第二个使用进度条方式提示,第三个也是使用文本方式提示,同时也带有帮助信息:

Simple Complexity, Text Indicator <br />

<asp:TextBox ID="TextBox1" Width="150" runat="server" /> <br />

<asp:Label ID="TextBox1_HelpLabel" runat="server" /> &nbsp;

<br />

Average Complexity, Bar Indicator 
<br />

<asp:TextBox ID="TextBox2" Width="150" TextMode="Password" runat="server" /> <br />

<asp:Label ID="TextBox2_HelpLabel" runat="server" /> &nbsp;

<br />

High Complexity, Text Indicator, Help Indicator 
<br />

<asp:TextBox ID="TextBox3" Width="150" runat="server" />

加入必要的CSS样式:

<style type="text/css">

    .TextIndicator_TextBox1
    
{
         background-color
:#047AFD;

         color
:#ffffff;

         font-family
:Arial;

         font-size
:9pt; 

         padding
: 2px 3px 2px 3px;   
    
}


    .BarIndicator_TextBox2
    
{
        color
:Blue;

        background-color
:#047AFD;

        padding-bottom
:1px;
    
}


    .BarBorder_TextBox2
    
{
        border-style
:solid;

        border-width
:1px;

        width
:200px;

        vertical-align
:middle;
    
}


    .TextIndicator_TextBox3
    
{
         background-color
:#047AFD;

         color
:#ffffff;

         font-size
:small;

         font-variant
:small-caps;  

         padding
: 2px 3px 2px 3px;   
    
}


    .TextIndicator_TextBox3_Handle

    
{
        width
:16px;

        height
:14px;

        background-image
:url(Question.png);

        overflow
:hidden;

        cursor
:help;

    
}

</style>

这时加入PasswordStrength,设置它的属性如下:

<atlasToolkit:PasswordStrength ID="p1" runat="server">
    
<atlasToolkit:PasswordStrengthExtenderProperties 

        
DisplayPosition="RightSide" 

        TargetControlID
="TextBox1"

        StrengthIndicatorType
="Text" 

        PreferredPasswordLength
="10" 

        PrefixText
="强度:" 

        HelpStatusLabelID
="TextBox1_HelpLabel" 

        TextCssClass
="TextIndicator_TextBox1"  

        TextStrengthDescriptions
="极弱;弱;中等;强;超强"

        MinimumNumericCharacters
="0" 

        MinimumSymbolCharacters
="0" 

        RequiresUpperAndLowerCaseCharacters
="false">

    
</atlasToolkit:PasswordStrengthExtenderProperties>

    
<atlasToolkit:PasswordStrengthExtenderProperties 

        
DisplayPosition="RightSide" 

        TargetControlID
="TextBox2"

        StrengthIndicatorType
="BarIndicator" 

        PreferredPasswordLength
="15" 

        HelpStatusLabelID
="TextBox2_HelpLabel"

        BarIndicatorCssClass
="BarIndicator_TextBox2" 

        BarBorderCssClass
="BarBorder_TextBox2"

        MinimumNumericCharacters
="1" 

        MinimumSymbolCharacters
="1" 

        RequiresUpperAndLowerCaseCharacters
="true">

    
</atlasToolkit:PasswordStrengthExtenderProperties>

    
<atlasToolkit:PasswordStrengthExtenderProperties 

        
DisplayPosition="BelowLeft" 

        TargetControlID
="TextBox3"

        StrengthIndicatorType
="Text" 

        PreferredPasswordLength
="20" 

        PrefixText
="Meets Policy? " 

        TextCssClass
="TextIndicator_TextBox3"

        MinimumNumericCharacters
="2" 

        MinimumSymbolCharacters
="2" 

        RequiresUpperAndLowerCaseCharacters
="true"

        TextStrengthDescriptions
="Not at all;Very Low compliance;Low Compliance;Average Compliance;Good Compliance;Very High Compliance;Yes"
        HelpHandleCssClass
="TextIndicator_TextBox3_Handle" 

        HelpHandlePosition
="LeftSide">

    
</atlasToolkit:PasswordStrengthExtenderProperties>

</atlasToolkit:PasswordStrength>

编译运行后效果如下

文字提示:

进度条提示:

文字提示:

点击帮助后:

 

完整示例下载:http://files.cnblogs.com/Terrylee/PasswordStrengthDemo.rar

作者:TerryLee
出处:http://terrylee.cnblogs.com
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
posted @ 2006-08-09 14:44 TerryLee 阅读(3991) 评论(22)  编辑 收藏 网摘 所属分类: [08]  Web开发

  回复  引用  查看    
#1楼 2006-08-09 15:02 | aspnetx      
哈哈
每次都能抢到沙发
PasswordStrength是在最新版本中才有的吧
看来很实用
  回复  引用  查看    
#2楼 [楼主]2006-08-09 15:19 | TerryLee      
@aspnetx
是在最新版本中的
进度条方式如果能根据密码的强弱用不同的颜色来表示就更好了:-)
  回复  引用    
#3楼 2006-08-09 16:06 | luca [未注册用户]
我不知道你第一个检查中文本提示还有几个字符需要输出代码是在哪~?不知道怎么实现的
  回复  引用    
#4楼 2006-08-09 16:13 | jeanso [未注册用户]
你的意思是页面加个<atlas:UpdateProgress ID="uprog" runat="server">,页面加载的时候就显示进度条呢?而你的例子里,是点击了提交按钮后才显示进度条的啊?

  回复  引用    
#5楼 2006-08-09 16:19 | luca [未注册用户]
我想问一下~我在以图片验证的时候那个进度总差一点~提示是Mixed case characters我不知道该怎么办~我想让提示变成中文的不行吗?(就是那个还需要几个characters那里)
  回复  引用    
#6楼 2006-08-09 16:32 | jeanso [未注册用户]
还有可不可以把这个层放在提交按钮上了?点击提交了,可以屏蔽重复提交。~
  回复  引用  查看    
#7楼 [楼主]2006-08-09 16:46 | TerryLee      
@luca

指定:HelpStatusLabelID="TextBox1_HelpLabel"
  回复  引用  查看    
#8楼 [楼主]2006-08-09 16:47 | TerryLee      
@jeanso
那个例子中点击按钮只是为了造成长时间的延时!
  回复  引用  查看    
#9楼 [楼主]2006-08-09 16:50 | TerryLee      
@luca
AtlasControlToolkit是开源的,可以自行修改源码
  回复  引用  查看    
#10楼 [楼主]2006-08-09 16:51 | TerryLee      
@jeanso
“还有可不可以把这个层放在提交按钮上了?”,不太明白你的意思
  回复  引用    
#11楼 2006-08-10 08:55 | jeanso [未注册用户]
re: Atlas学习手记(6):那你的意思是页面只要有延时操作,比如页面加载,
<atlas:UpdateProgress ID="uprog" runat="server">就要显示吗?

“还有可不可以把这个层放在提交按钮上了?”==》<atlas:UpdateProgress ID="uprog" runat="server">这里面的这个层可以放在”提交“按钮上吗?用户点击后,显示;执行完,消失。
  回复  引用    
#12楼 2006-08-16 23:23 | 孤叶 [未注册用户]
期待你的新作。。。
看官方的实在累;
英文不好的原因.
我这些天要面试一家公司就靠这个,希望能给我带来好运
  回复  引用    
#13楼 2006-08-23 10:09 | jeanso [未注册用户]
老大最近比较忙吧?
  回复  引用  查看    
#14楼 [楼主]2006-08-23 14:05 | TerryLee      
@孤叶
祝你好运哦!
  回复  引用  查看    
#15楼 [楼主]2006-08-23 14:06 | TerryLee      
@jeanso
这几天确实很忙,没顾得上更新!
  回复  引用    
#16楼 2006-08-24 11:31 | jeanso [未注册用户]
页面加载,
<atlas:UpdateProgress ID="uprog" runat="server">就要显示吗?

“还有可不可以把这个层放在提交按钮上了?”==》<atlas:UpdateProgress ID="uprog" runat="server">这里面的这个层可以放在”提交“按钮上吗?用户点击后,显示;执行完,消失。

能否给我个页面加载使用updateprogress的loading的具体例子啊?
  回复  引用    
#17楼 2006-08-28 15:36 | hanxiangtong [未注册用户]
PasswordStrength是什么呢??
  回复  引用  查看    
#18楼 [楼主]2006-08-28 15:44 | TerryLee      
@hanxiangtong
AtlasControlToolkit中的一个Extender
  回复  引用    
#19楼 2006-09-05 16:01 | jackie[匿名] [未注册用户]
@TerryLee
你好,我想问一个问题,就是我在formview里增加一个PasswordStrength,但是却不能显示进度条。请问怎样可以解决
  回复  引用  查看    
#20楼 [楼主]2006-09-05 17:21 | TerryLee      
@jackie[匿名]
不太清楚,可以问问Dflying
  回复  引用    
#21楼 2007-01-17 00:29 | snyod [未注册用户]
代表党(.NET平台)感谢您.
全部收藏.....




标题  
姓名  
主页
Email (博主才能看到) 
验证码 *  看不清,换一张 [登录][注册]
内容(请不要发表任何与政治相关的内容)  
  登录  使用高级评论  新用户注册  返回页首  恢复上次提交      
该文被作者在 2006-08-15 08:02 编辑过
Google站内搜索

相关文章:

相关链接: