MongoDB-C# Driver賬戶密碼登錄問題


MongoDb在3.0之后添加了SCRAM-SHA-1,用戶驗證模式。添加的用戶,默認登錄協議也是這個。

在登陸的時候就要選擇使用這種方式登錄。有的gui客戶端的登錄驗證方式還是MONGODB-CR。因此會驗證失敗,錯誤日志信息:

Failed to authenticate user@db with mechanism MONGODB-CR: AuthenticationFailed: MONGODB-CR credentials missing in the user document

使用命令 db.system.users.find(),可以查看用戶的登錄驗證協議,如:

{ "_id" : "userdb.myuser", "user" : "myuser", "db" : "userdb", 
"credentials" : { "SCRAM-SHA-1" : { "iterationCount" : 10000, 
"salt" : "XXXXXXXXXXXXXXXXXXXXXXXX", "storedKey" : "XXXXXXXXXXXXXXXXXXXXXXXXXXX", "serverKey" : "XXXXXXXXXXXXXXXXXXXXXXXXXXX" } }
, "roles" : [ { "role" : "dbOwner", "db" : "userdb" } ] }

在使用C# Driver操作mongo時,如果驅動版本小於1.10,就連接不上。必須要大於1.10版本,使用字符串方式,就可以連接了。

mongodb://user:pwd@127.0.0.1:2222/db

也可以修改,用戶的驗證協議,這種方式顯然是不推薦的,可參考:http://21jhf.iteye.com/blog/2216103。

C# Driver 1.10版本:http://files.cnblogs.com/files/zhaoyihao/CSharpDriver-1.10.1.zip


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM