SubSonic:区分大小写测试?

时间:2009-10-26 17:35:36

标签: subsonic subsonic2.2

我很好奇是否有办法在SubSonic中进行区分大小写的字符串比较?我有以下声明:

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

但是,它不会测试密码的情况(这是我需要做的)。理想情况下,密码将在存储之前加密,因此这不是问题。但是,除了使用直接SQL之外,有没有办法进行区分大小写的比较(BINARY)?

2 个答案:

答案 0 :(得分:2)

SubSonic只会创建查询 - 它不会处理您的数据库所做的实际比较。如果您愿意,可以将数据库设置为区分大小写(它位于几乎所有数据库提供程序的设置中)。我会推荐这个。

如果这不是一个选项,那么您可以使用提供的电子邮件提取所有记录,然后使用String.Equals()在代码中运行字符串比较。

加密不是一个好主意 - 盐/哈希密码来做单向事情。如果您可以提取密码并解密您的系统是不安全的。

你仍然遇到同样的问题 - 所以在数据库中设置案例或者在代码中进行比较。

答案 1 :(得分:0)

不是一个好方法,但您可以在应用程序级别进行身份验证。您可以通过电子邮件获取帐户,然后在应用程序级别比较密码。性能杀手但是,它会起到作用。