PasswordStrength is an ASP.NET AJAX extender that can be attached to an ASP.NET TextBox control
used for the entry of passwords. The PasswordStrength extender shows the strength of the password
in the TextBox and updates itself as the user types the password. The indicator can display the
strength of the password as a text message or with a progress bar indicator. The styling and
position of both types of indicators is configurable. The required strength of the password is
also configurable, allowing the page author to tailor the password strength requirements to their
needs. The text messages that describe the current strength of the password can also be
configured and their default values have localization support built-in. The second and third extenders'
strings are being pulled from Toolkit resources files. We do not
have strings for all languages currently so they may show non-localized values for some languages.
A help indicator can be used to provide explicit instructions about
what changes are required to achieve a strong password. The indicator is displayed when the user
begins typing into the TextBox and is hidden from view once the TextBox loses focus.
The control above is initialized with this code. The italic properties are optional:
<ajaxToolkit:PasswordStrength ID="PS" runat="server"
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"
TextStrengthDescriptionStyles="cssClass1;cssClass2;cssClass3;cssClass4;cssClass5
CalculationWeightings="50;15;15;20" />
- TargetControlID - ID of the TextBox to attach to
- DisplayPosition - Positioning of the strength indicator relative to the
target control
- StrengthIndicatorType - Strength indicator type (Text or BarIndicator)
- PreferredPasswordLength - Preferred length of the password
- PrefixText - Text prefixed to the display text when StrengthIndicatorType=Text
- TextCssClass - CSS class applied to the text display when StrengthIndicatorType=Text
- MinimumNumericCharacters - Minimum number of numeric characters
- MinimumSymbolCharacters - Minimum number of symbol characters (ex: $ ^ *)
- RequiresUpperAndLowerCaseCharacters - Specifies whether mixed case characters
are required
- TextStrengthDescriptions - List of semi-colon separated descriptions used when
StrengthIndicatorType=Text (Minimum of 2, maximum of 10; order is weakest to strongest)
- TextStrengthDescriptionStyles - List of CSS class names separated by a semi-colon that are applied to each Textual
Strength description. The number of these items, must exactly match the number of text strength descriptions. If this
property is not present, then the style defined in the TextCssClass property is used.
- CalculationWeightings - List of semi-colon separated numeric values used to
determine the weighting of a strength characteristic. There must be 4 values specified which must
total 100. The default weighting values are defined as 50;15;15;20. This corresponds to password
length is 50% of the strength calculation, Numeric criteria is 15% of strength calculation,
casing criteria is 15% of calculation, and symbol criteria is 20% of calculation. So the format is
'A;B;C;D' where A = length weighting, B = numeric weighting, C = casing weighting,
D = symbol weighting.
- BarBorderCssClass - CSS class applied to the bar indicator's border when
StrengthIndicatorType=BarIndicator
- BarIndicatorCssClass - CSS class applied to the bar indicator's inner
bar when StrengthIndicatorType=BarIndicator
- HelpStatusLabelID - Control ID of the label used to display help text
- HelpHandleCssClass - CSS class applied to the help element used to display a
dialog box describing the password requirements
- HelpHandlePosition - Positioning of the help handle element relative to the
target control