检查用户名和&在mvc中使用表单身份验证的密码?

时间:2012-10-09 10:11:21

标签: asp.net-mvc-3 forms-authentication

我正在尝试编写一种在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;
            }

        }

    }

问题是我可以使用任何用户名登录密码,实际上没有注册。我做错了什么?提前谢谢。

1 个答案:

答案 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;

更多信息