使用.NET驱动程序2.4在MongoDB上验证用户

时间:2016-12-14 14:22:33

标签: c# mongodb mongodb-.net-driver

如果服务器正在运行且用户名和密码正确,则以下代码可以正常工作。但是,如果我提供了错误的用户名或密码,它不会给我反馈,但只会在调用Count方法时遇到超时。

MongoClientSettings setts = new MongoClientSettings()
                    {
                        Server = new MongoServerAddress("127.0.0.1", 27017),
                        Credentials = new MongoCredential[] { MongoCredential.CreateCredential("TestDatabase", "username", "password") }
                    };
this.client = new MongoClient(setts);    
this.client.Cluster.DescriptionChanged += this.ClusterDescriptionChanged;
var database = this.client.GetDatabase("TestDatabase");
var collection = database.GetCollection<BsonDocument>("SimpleCollection");
var count = collection.Count(MongoDB.Driver.FilterDefinition<BsonDocument>.Empty);

如何从驱动程序获取错误消息,如何检查是否是不适合的连接,用户或密码?

PS:自2016年1月2.0以来,驱动程序API发生了很大变化,这意味着此网站上的大多数网络教程和帖子不再适用于当前版本。

1 个答案:

答案 0 :(得分:0)

获得客户端后,您可以检查连接是否成功

var server = client.GetServer();
server.Ping();

同样,最好将代码放在带有超时异常的try catch中,因为这是预期的。

有关此问题的详情,请参阅MongoDB C# Driver check Authentication status & Role