У меня возникла небольшая проблема с аутентификацией при входе / регистрации на сайте в отношении схемы случая.
Во-первых, я начал с того, что регулярное выражение для полей ввода принимает только нижний регистр. Похоже, самая умная вещь, чтобы сделать. Но это ужасно. Проще говоря, даже если я вставлю текст You must use only lowercase letters
, люди его не читают, расстраиваются, а потом просто не удосуживаются зарегистрироваться.
Итак, чтобы исправить это, я исправил это так, чтобы регулярное выражение могло принимать как прописные, так и строчные значения. Когда я сохранял адреса электронной почты в базе данных, я просто конвертировал их в нижний регистр. Все казались счастливыми около 8 секунд.
Однако сейчас мне приходится делать это в нескольких местах. И это становится неприятным. Мне было интересно, есть ли способ сделать DataAnnotation для моей ViewModel, например ..
class LoginViewModel {
[ConvertLowercase]
public string Email { get; set; }
/// ... other view model properties
}
Это всегда гарантировало бы, что этот результат стал строчным, прежде чем он попадет на мой контроллер, тем самым ставя узкое место всей операции в ViewModel и убирая ее из избыточного повторения - вставки логики в каждый запрос, запрос и поиск.
Есть предложения? Я изучал создание собственных пользовательских аннотаций данных, но мне удалось понять это только с точки зрения проверки, а не манипулирования данными.