簡體   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