.net 林克不理会这个案子

.net 林克不理会这个案子,.net,asp.net-mvc,linq,.net,Asp.net Mvc,Linq,我有以下LINQ声明: (from o in Table where (o.Username == username && o.Password == password) select o).SingleOrDefault() 这似乎忽视了这一点。如何确保“测试”!=“测试”等。 谢谢LINQ没有忽略这个案例,是SQL Server。更改排序规则以使SQL Server区分大小写。您使用的是哪种LINQ提供程序?这很重要。例如,LINQ to XML是区分大小写的,您必须执行T

我有以下LINQ声明:

(from o in Table where (o.Username == username && o.Password == password) select o).SingleOrDefault()
这似乎忽视了这一点。如何确保“测试”!=“测试”等。
谢谢

LINQ没有忽略这个案例,是SQL Server。更改排序规则以使SQL Server区分大小写。

您使用的是哪种LINQ提供程序?这很重要。例如,LINQ to XML是区分大小写的,您必须执行ToUpperVariant()调用才能变得不区分大小写,并且在SQL上,行为可能因SQL排序规则设置而异。

根据Klaus的评论,问题可能是您的SQL server CI设置


但是,在任何情况下,明文存储密码都是不好的做法-您应该查看,或者更好地使用安全框架(如ASP.NET)为您管理这些密码。

您确定您的SqlServer不区分大小写吗?另外,请不要在数据库中存储密码。至少,存储一个密码散列,根据用户名检索记录并比较散列。通常用户名应该是大小写,而密码是区分大小写的。