TAT,
I hope you realize my crassness is somewhat playful, which undoubtedly is prone to being lost w/o visual cues and such that the internet does not provide. So I'm not saying..."You're a bad developer".
However I disagree with your solution 100%.
1.
TATWORTH:
...however the whole site has to be re-tested.
Why? The login is only a gateway into the application, once in, it's not like the password strength is used computationally elsewhere. It's analogous to the fact the current situation with passports here in the US. A few years ago I only needed a driver's license to get back into the country (think of that as the "password strength"). Today however you need a passport (a stronger "password strength"). Once that rule came out however the government didn't go back and say, "wait a second, we have to go find all the people who ever entered the country and check them again". The people who are "in" are in. The borders are only checked at that point, once you're in it doesn't matter by what method you were let in. Same with web apps, the password strength is only a way to "guard the gate".
2..
TATWORTH:
A change proposal is required ect. A time has to be negotiated when the change can be done.
This feels like Waterfall to me. And I won't make claims about design methodology since it's highly dependent on the industry you work in. If this is industry you work in then that's fine. I understand the need for change proposal ect in certain industries. But also realize there are some industries that don't require this overhead and just want the change done.
3.
TATWORTH:
Your idea of putting it into the web.config may allow it to be changed on the fly. Given the cantankerous nature of regular expressions, your solution could lack robustness.
Regular expressions have never failed me. In fact the entire framework and how your source files are compiled is based on the parsing that RegularExpressions provide. So when you say "lack robustness" I thoroughly disagree. In some ways if it's good enought for the .NET framework then it's good enough for me. Most people don't use RegEx because they don't understand them, but that's not a good enough reason.
4.
TATWORTH:
However how do you propose getting around the clever hacker that disables the control? Server side validation is robust and if done via a method in a class project, is readily unit tested.
Please see above, I've already addressed this. I'll write it again. A "hacker" who "disables" this control (through disabling javascript) is still denied on the server. I'll write it again, BY DEFAULT ASP.NET VALIDATORS PROVIDE BOTH SERVER-SIDE AND CLIENT-SIDE VALIDATION.
From MSDN....in a pretty blue box marked "Security Note" (http://msdn2.microsoft.com/en-us/library/yb52a4x0.aspx)
Validation is performed on the server even if it was already performed on the client. This enables you to determine validation status in server code and provides security against users bypassing client-side validation.
So when you say "servier side validation is robust", no one is disagreeing with you. It's just that it's already there for you when you drop a validator on the page. As for unit testing, I've stopped (never really started) testing classes that exist in the .NET framework, in other words, I don't test the validators or any other class that Microsoft ships. I agree with unit testing, however I don't advocate writing a class that does what's already there for you just so that you can write a unit test and point to NUnit and say, "See....Green".
If you've found this post helpful, please mark this question as answered.