我遵循LINQ声明:
(from o in Table where (o.Username == username && o.Password == password) select o).SingleOrDefault()
这似乎忽略了Case。我如何确保“测试”!=“测试”等。 感谢
答案 0 :(得分:7)
LINQ并没有忽略这种情况,它是SQL Server。更改COLLATION以使SQL Server区分大小写。
答案 1 :(得分:2)
根据Klaus的评论,问题可能是您的SQL服务器CI设置
但是,在任何情况下都存储密码明文是不好的做法 - 您应该查看hashing,或者甚至更好地使用安全框架(如ASP.NET Membership)来管理这些密码。你。
答案 2 :(得分:1)
您使用的LINQ提供商是什么?这很重要。例如。 LINQ to XML区分大小写,您必须执行ToUpperVariant()调用以使其不区分大小写,并且在SQL上,行为可能因sql排序规则而异。