如何检查用户名的大小写敏感性时,登录到一个网站在MVC 5使用LINQ



我需要帮助检查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之前,将其属性分配给其他变量。

相关内容

  • 没有找到相关文章

最新更新