我发现这个网站描述了一个非常简单的 LINQ to SQL 用户身份验证,如codesamplez.com。
我在数据库中的数据如下所示
| id | name | password |
+-----+------+----------+
| 1 | tic | test |
| 2 | tac | test |
| 3 | toe | test |
由于某种奇怪的原因,当我打电话时,数据没有像我预期的那样验证
bool b = IsValidUser("tic" , "test");
这返回FALSE
,但任何时候我传递相同的用户名和密码组合
bool b = IsValidUser("tic" , "tic");
或者
bool b = IsValidUser("a" , "a");
或者
bool b = IsValidUser("b" , "b");
它回来了true
!
下面是与引用页面基本相同的代码。
public bool IsValidUser(string userName, string passWord)
{
DataClasses1DataContext db = new DataClasses1DataContext();
var users = from u in db.Users
where u.name == userName
&& u.password == passWord
select u;
return Enumerable.Count(users) > 0;
}
更新: 用户类:
[global::System.Data.Linq.Mapping.TableAttribute(Name="dbo.Users")]
public partial class User
{
private int _id;
private string _name;
private string _password;
public User()
{
}
[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_id", DbType="Int NOT NULL")]
public int id
{
get
{
return this._id;
}
set
{
if ((this._id != value))
{
this._id = value;
}
}
}
[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_name", DbType="NChar(10)")]
public string name
{
get
{
return this._name;
}
set
{
if ((this._name != value))
{
this._name = value;
}
}
}
[global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_password", DbType="NChar(10)")]
public string password
{
get
{
return this._password;
}
set
{
if ((this._password != value))
{
this._password = value;
}
}
}
}