0

Я внедрил пользовательский поставщик членства в ASP.net MVC и не могу понять, как сделать имя пользователя нечувствительным к регистру. Так, например, «Соломон» мог войти в систему, но «соломон» не смог.Избавьтесь от имени пользователя, зависящего от регистра, в пользовательском поставщике членства

Моя реализация очень голые кости. Я просто написал код для ValidateUser() и сменил пароль().

Спасибо за помощь!

+0

Вы вызываете базу данных в ValidateUser()? Если да, вы должны сделать запрос чувствительным к регистру. Какую базу данных вы используете? – LukLed

+0

Я использую базу данных MySql с Fluent Nhibernate в качестве моего орма. – Solomon

ответ

2

shimms находится на полпути.

Разделение логической операции между двумя «уровнями» не является практикой звука.

Логическая операция должна быть атомарной. Поэтому просто опустите как в запросе ...

, например.

where Lower(username)=Lower(@username) 
+0

Вы совершенно правы. +1 –

+0

Awesome, спасибо! – Solomon

0

Преобразуйте имя пользователя в его нижнюю регистрационную версию, а затем сравните его с нижней регистрацией имени пользователя в базе данных. ANSI SQL будет:

WHERE LOWER(username) = :username 

питания параметр имя пользователя, как:

... = username.ToLower(); 
+0

Я предпочитаю верхний регистр :) –

+0

У вас есть хрупкая логическая зависимость здесь, shimms. Вы не должны разделить логическую операцию. Это должно быть атомное сравнение в базе данных/запросе. –

 Смежные вопросы

  • Нет связанных вопросов^_^