PasswordSecurityMeter自定义控件

分享于 

5分钟阅读

Web开发

  繁體

Sample Image - 4.88 KB

介绍

最近我在英国网站eBay注册,发现一个有趣的控件,显示用户密码有多强。 我觉得这个想法很有趣,我决定创建一个简单的ASP.NET 定制控件,它将提供这个功能。

背景

用户密码是基本的安全问题之一。 另一方面,我们希望系统是安全的,需要密码,但是从另一方面来说,不需要知道复杂的密码。 安全密码的简单解决方案是使用字母( 混合上和下大小写)。数字和特殊字符( 如 #[]$%^&*). )! 密码也必须具有适当的长度(。最少 6个字符,但更多)。 我们可以简单地将弱密码mariusz更改为强大的MariusZ#30. 但我们- 开发人员必须记住,展示用户,帮助他们,如何创建强密码。

控件

让我们看看发生了什么。

首先是引擎。基本上,我们需要检查密码( 如果长度超过minimum个字符,但如果它至少有推荐长度- 字符,则必须大于最小值。)的长度。 下一步- 验证密码不包含非法短语( 如登录电子邮件中的公司名称或者短语),或者连续或者相同字符。 最后一步是检查密码是否包含字母和数字以及特殊字符。 这在 CalculateSecurityLevel (。查看第 329行;PasswordSecurityMeter.cs 文件) 过程中实现,也在渲染的JavaScript代码(。查看第 162行;PasswordSecurityMeter.cs 文件) 中。

关于控制设计师的一点

可以看到,我已经创建了控件( PasswordSecurityMeterDesigner 类)的设计器。 设计器用于在设计时提供控件的呈现。 这种情况下,设计器提供简单的属性检查,并且当未正确设置值时,将呈现适当的消息。

设计器类应该从 ControlDesigner 类派生,并且应该实现 GetDesignTimeHtml 过程(。查看第 17行;PasswordSecurityMeterDesigner.cs 文件)。 如你所见,我检查是否已经设置属性 PasswordControlName,并且在选择了渲染模式 Image 时,如果 ImagesNamePattern 属性已经设置。

若要将设计器用于控件,必须为控件(。查看第 13行;PasswordSecurityMeter.cs 文件) 类设置设计器属性。

使用代码

我假设你知道如何在 Visual Studio 中编译和安装自定义控件。 网络( 如果没有,请阅读MSDN上的文章。)。 如果要使用该控件,只需将它拖到网页窗体并设置属性 PasswordControlName - 这是控制用户密码的控件的名称。 此外,还可以设置以下属性:

  • MinPasswordLength - 最小密码长度
  • MaxPasswordLength - 最大密码长度
  • GoodPasswordLength - 确定一个好密码应该有多少个字符。 如果密码至少有该字符数,则添加一个级别点。
  • EMailControlName - 用户可以指定电子邮件的控件的名称。 这可以防止用户使用电子邮件地址中的密码短语,该地址可以用作登录。
  • RenderMode - 选择渲染模式( 作为 Image 或者 Table )。
  • ImagesNamePattern - 当 RenderModeImage 时,必须指定这里属性。 简单键入映像 Pattern的名称,将 {0} 改为安全级别的数字,例如: 在本示例中,图像/blue_securitylevel {0}。gif中,在图像目录( blue_securitylevel0.gif。blue_securityLevel1.gif, ) 中有六个图像,。 blue_securitylevel5.gif )。

历史记录

  • 30/06/2005 - ( 长时间) - 在一段时间后,我写了篇文章。 不知道为什么,但它总是需要一个时间:(
  • 04/05/2005我写了控制代码并决定写一篇文章。

要执行以下操作:

  • 实现允许用户输入禁止单词列表的属性( 公司名称)。
  • 实现允许用户为渲染表设置颜色的属性。
  • 实现动态图像渲染。
  • 实现"提示&提示",它将帮助客户创建更强大的密码。