我正在尝试编写一种在Web应用中验证用户身份的方法。这是代码:
public void SignIn(UserInfo Entity)
{
if(this.CheckUser(Entity.UserName, Entity.Password))
{
FormsAuthentication.RedirectFromLoginPage(Entity.UserName, false);
}
else
{
}
}
public bool CheckUser(String _UserName, string _Password)
{
using (var context = new TourBlogEntities1())
{
List<UserInfo> test = null;
test = (from s in context.UserInfoes
where s.UserName == _UserName && s.Password == _Password
select s).ToList<UserInfo>();
if(test==null)
{
return false;
}
else
{
return true;
}
}
}
问题是我可以使用任何用户名登录密码,实际上没有注册。我做错了什么?提前谢谢。
答案 0 :(得分:2)
您的列表永远不会为空。您需要检查列表中是否包含元素。
我建议您使用Any()
或Count()
方法。
Any() - 确定序列是否包含任何元素。
Count() - 返回一个数字,表示指定序列中有多少元素满足条件。
return (from s in context.UserInfoes
where s.UserName == _UserName && s.Password == _Password
select s).Any();
return (from s in context.UserInfoes
where s.UserName == _UserName && s.Password == _Password
select s).Count() != 0;