我需要帮助检查LoginId &密码类似Admin,密码为SsA。123,但目前它需要admin作为LoginId和ssa。
public static class LoginValidation
{
//VALIDATE LOGIN AND GET USER NAME AND USER ID FOR FUTURE USE
public static bool Validate_Login(string first_input, string password, DBEntities db, out string Name, out int id)
{
Name = db.MAST_User.Where(x => x.LoginId == first_input).Select(x => x.UserName).FirstOrDefault();//GET USER NAME TO DISPLAY AFTER LOGIN
id = db.MAST_User.Where(x => x.LoginId == first_input).Select(x => x.MastId).FirstOrDefault(); //GET USER ID TO CHECK RIGHTS
return db.MAST_User.First(x => x.LoginId == first_input).Password == password ? true : false; //RETURNS BOOLEAN VALUE TRUE OR FALSE
}
}
您的比较查询是在数据库服务器内执行的,它可能已经设置为不区分大小写(例如SQL服务器默认情况下是不区分大小写的)。
最简单的方法是将查询结果转换为Array()/List()/Variable
,然后在C#
代码中进行比较,从而将查询结果存储到内存中。例;
//Load into memory
var users = db.MAST_User.Where(x => x.LoginId == first_input).ToArray();
//Compare in C#
if(users.Any(u=> u.LoginId == first_input && u.Password == password))
{
return true;
}
return false;
在一个单独的注意,请检查您的FirstOrDefault()
对象null
之前,将其属性分配给其他变量。