繁体   English   中英

从mongodb C#获取密码

[英]Getting password from mongodb c#

我正在尝试创建一种登录方法,我需要从相应的用户那里获取密码。 这是我的数据库层代码:

public int loginUser(string userName, string pass)
    {
        int result = 0;
        var credentials = MongoCredential.CreateMongoCRCredential("SearchForKnowledge", userName, pass);
        var settings = new MongoClientSettings
        {
            Credentials = new[] { credentials }
        };
        try
        {
            var mongoClient = new MongoClient(settings);
            var database = mongoClient.GetDatabase("SearchForKnowledge");
            var coll = database.GetCollection<BsonDocument>("Users");

            var filter = Builders<BsonDocument>.Filter.Eq("userName", userName);
            var query = coll.Find(filter);
            //??????????
        }
        catch (Exception ex) {
            result = 0;
        }
        return result;
    }

如您所见,如果登录成功,则尝试返回1;如果失败,则返回0(用于重定向)。 我正在努力检查用户名是否与设置的密码匹配。 此刻,我刚刚创建了一个过滤器,并将其传递给了Find方法,并且此时此刻,我死定了。 如何从mongodb返回该用户的密码,并将其与作为参数传递的密码进行比较?

尝试这样的事情:

public int loginUser(string userName, string pass)
    {
        int result = 0;
        //Here you use credentials for the connection, not the one passed
        //to the method:
        var credentials = MongoCredential.CreateMongoCRCredential("SearchForKnowledge", connectionUsername, connectionPass);
        var settings = new MongoClientSettings
        {
            Credentials = new[] { credentials }
        };
        try
        {
            var mongoClient = new MongoClient(settings);
            var database = mongoClient.GetDatabase("SearchForKnowledge");
            var coll = database.GetCollection<BsonDocument>("Users");

            var filter = Builders<BsonDocument>.Filter.Eq("userName", userName);
            var result = await coll.Find(filter).ToListAsync().First();
            if(result["Password"] == pass)
            {
               result = 1;
            }
        }
        catch (Exception ex) {
            result = 0;
        }
        return result;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM