linq - 使用 Linq to sql 执行区分大小写的查询?
问题描述
如何强制 LINQ to SQL 在数据库端进行区分大小写的比较?身份验证时,我需要密码身份验证区分大小写,而用户名不区分大小写。生成的查询不区分 SQL 服务器比较不区分大小写。
public Boolean checkLogin(string uname, string pwd)
{
DataClassesDataContext dc = new DataClassesDataContext(RetrieveConnection());
int count=(from c in dc.Logins
where c.UserName == uname && c.Password == pwd
select c).Count();
if(count>0)
{
return true;
}
else
{
return false;
}
}
解决方案
您在这方面的方法不是很好。最好的方法是使用方法将所有用户名以小写字母保存在数据库中string.ToLower()
。关于密码,也许您应该尝试一些加密方法,而不是将字符串作为密码存储在数据库中。有很多简单的加密方法,所以并不太复杂(见System.Crypthography
)
推荐阅读
- node.js - NodeJS 检查 typeOf 节点/模块(Puppeteer)
- r - 如何估计特定区间之间的统计分布值?
- python - 如何在 Python 中测试与链表相关的程序
- python - 使用 pandas 将列名转换为值来重塑数据框
- sql - 如何使用 2 列的结果在 Oracle sql 中创建计算列
- openlayers - 删除特定图层
- java - 即使内容类型设置为 application/x-www-form-urlencoded,请求正文仍以 json 格式发送
- jquery - 在 MVC 核心应用程序中 Ajax 成功后刷新部分视图
- javascript - Vuejs Vuex 状态覆盖外部存储,无需突变或直接访问状态
- css - 如何为特定的 CSS 选择器定义一个 sass 映射