Bcrypt密码验证

时间:2016-04-27 07:58:33

标签: c# asp.net asp.net-mvc mongodb bcrypt

我正在尝试解密登录方法上的密码,但它允许使用我键入的任何密码登录,不知道为什么,也许有人可以帮我解决? 我在db层中的登录方法:

public string loginUser(string userName, string pass)
{
    string result = "";

    try
    {
        var mongoClient = new MongoClient("mongodb://localhost");
        var database = mongoClient.GetDatabase("SearchForKnowledge");
        var coll = database.GetCollection<BsonDocument>("Users");

        var filter = Builders<BsonDocument>.Filter.Eq("userName", userName);
        var results = coll.Find(filter).ToList().First();
        if (BCrypt.Net.BCrypt.Verify(pass, results["password"].ToString()))
        {
            result = results["userName"].ToString();
        }
    }
    catch (Exception ex)
    {
        result = "";
    }
    return result;
}

我的用户控制器:

public ActionResult Login(UsersLogin form)
{
    User user = new User();
    UserDB udb = new UserDB();

    if (!form.Username.IsEmpty())
    {
        udb.loginUser(form.Username, form.Password);
        Session["userName"] = form.Username;
        return RedirectToRoute("Home");
    }
    return RedirectToRoute("Login");
}

0 个答案:

没有答案