2009-10-26 4 views
0

SubSonic에서 대소 문자 구분 문자열 비교를하는 방법이 있는지 궁금합니다.SubSonic : 대소 문자를 구분하는 테스트?

return new Select() 
       .From<Account>() 
       .Where("email").IsEqualTo(email) 
       .And("password").IsEqualTo(password)     
       .ExecuteSingle<Account>(); 

그러나, 그것은 (내가해야 할 일이다)의 비밀번호에 대한 케이스에 대해 테스트하지 않습니다 나는 다음과 같은 문장이있다. 이상적으로 암호는 저장하기 전에 암호화되므로 문제가되지 않습니다. 그러나 스트레이트 SQL을 사용하는 것 외에도 대소 문자를 구분하는 비교 (BINARY)를 수행하는 방법이 있습니까?

답변

2

SubSonic은 쿼리를 생성합니다. 실제 비교는 처리하지 않습니다. DB가 수행합니다. 원하는 경우 DB를 대/소문자를 구분하도록 설정할 수 있습니다 (모든 DB 공급자의 설정에 있음). 나는 이것을 추천 할 것이다.

이 옵션이 아닌 경우 제공된 전자 메일을 사용하여 모든 레코드를 가져온 다음 String.Equals()를 사용하여 코드에서 문자열 비교를 실행할 수 있습니다.

암호화는 좋은 생각이 아닙니다. 일방적 인 작업을 수행하기 위해 암호를 해시/해시합니다. 암호를 풀고 시스템 암호를 해독 할 수 없다면 안전하지 않습니다.

그래도 같은 문제가 남아 있습니다. DB에 사례를 설정하거나 코드를 비교하십시오.

0

좋은 방법은 아니지만 응용 프로그램 수준에서 인증을 수행 할 수 있습니다. 전자 메일로 계정을 생성 한 다음 응용 프로그램 수준에서 암호를 비교할 수 있습니다. 성능 킬러하지만, 그것은 트릭을 할 것입니다.

관련 문제