Как выполнить сравнение строк с учетом регистра с помощью simple.data

Можно ли выполнить сравнение строк с учетом регистра с помощью Simple.Data? Я хочу проверить имя пользователя и пароль, и мне нужно сделать сравнение паролей чувствительным к регистру.


person Afraz Ali    schedule 22.08.2013    source источник


Ответы (1)


В настоящее время это невозможно сделать с помощью Simple.Data, ключевое слово COLLATE не поддерживается (при условии, что вы используете SQL Server).

Тем не менее, похоже, что вы «делаете это неправильно» в отношении обработки паролей. У вас должно быть значение «соли» для каждого пользователя, которое вы объединяете с введенным паролем в своем алгоритме хеширования. Поэтому вам нужно FindByUsername запись, а затем проверить пароль в коде вашего приложения. Если вам действительно нужно, чтобы имя пользователя было чувствительно к регистру (что необычно), вы также можете выполнить это сравнение в коде.

person Mark Rendle    schedule 22.08.2013
comment
Спасибо, Марк, но мне просто любопытно, я не хочу, чтобы имя пользователя было чувствительно к регистру, а скорее пароль, это необычно? На большинстве сайтов есть эта функция: если мой пароль abc и я ввожу ABC, они не подтвердят его. - person Afraz Ali; 23.08.2013
comment
Да, пароли обязательно должны быть чувствительны к регистру, чтобы увеличить сложность, но база данных никогда не должна проводить сравнение, поскольку для дополнительной безопасности у вас должны быть хеш-соли для каждого пользователя. - person Mark Rendle; 26.08.2013