0

SubSonic で大文字と小文字を区別する文字列比較を行う方法があるかどうか知りたいですか? 私は次の声明を持っています:

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

ただし、パスワードの大文字と小文字はテストしません (これは私が行う必要があることです)。理想的には、パスワードは保存する前に暗号化されるため、これは問題になりません。しかし、単純な SQL を使用する以外に、大文字と小文字を区別する比較 (BINARY) を行う方法はありますか?

4

2 に答える 2

2

SubSonic はクエリを作成するだけです。実際の比較は処理しません。DB は処理します。必要に応じて、DB で大文字と小文字を区別するように設定できます (ほぼすべての DB プロバイダーの設定にあります)。これをお勧めします。

これができない場合は、提供された電子メールですべてのレコードを取得し、String.Equals() を使用してコードで文字列比較を実行できます。

暗号化は良い考えではありません - パスワードをソルト/ハッシュして一方向のことを行います。パスワードを取得して復号化できる場合、システムは安全ではありません。

ただし、まだ同じ問題に悩まされています-DBにケースを設定するか、コードで比較してください。

于 2009-10-27T01:30:05.257 に答える
0

良い方法ではありませんが、アプリケーション レベルで認証を行うことができます。メールでアカウントを取得し、アプリケーション レベルでパスワードを比較できます。パフォーマンスキラーですが、うまくいきます。

于 2010-09-04T10:07:14.317 に答える