codesamplez.comのように、 LINQtoSQLの非常に単純なユーザー認証について説明しているこのサイトを見つけました。
データベース内の私のデータは次のようになります
| 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;
}
更新: Userクラス:
[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;
}
}
}
}