Если у вас будет несколько пользовательских интерфейсов, в которых пользователь может ввести свой пароль (веб, мобильный, клиент Windows и т. Д.) Или предоставит услугу для этого (веб, wcf и т. Д.), То я думаю, что ваш лучший вариант - перехватить этот тип ошибки на самом распространенном уровне для всех этих платформ.
Как правило, мы реализуем бизнес-правила, подобные этим, в базе данных (с помощью хранимых процедур), чтобы у нас было одно общеизвестное место для проверки и изменения этих правил.
Если вы используете базу данных, которая не поддерживает хранимые процедуры, вы можете реализовать эту функцию на «бизнес-уровне» или в наборе кода, отвечающего за выполнение бизнес-логики для вашего приложения.