MongoDB C# Driver MongoCredential object

本文关键字:object MongoCredential Driver MongoDB | 更新日期: 2023-09-27 18:36:50

MongoDB驱动程序的文档似乎与从NuGet中提取的实际驱动程序不同。

更具体地说,记录的"MongoCredentials"(复数)不存在,而只有"MongoCredential"(单数)。此外,MongoServer.GetDatabase 似乎没有接受 MongoCredential 的构造函数,只有 MongoDatabaseSettings(以及命名 databae 的字符串),而且我没有看到给 MongoDatabaseSettings 对象一个 MongoCredential 对象的明显方法。

我没有在谷歌上找到任何我在驱动程序中找到的对象的例子,只有那些与(过时?)官方文档一致的对象。

我正在使用的驱动程序称为(在NuGet包管理器中)"官方MongoDB C#驱动程序"。

总结一下:如何在 C# 驱动程序中实际提供凭据?

MongoDB C# Driver MongoCredential object

我也在使用NuGet的官方MongoDB C#驱动程序,版本1.8.3。

事实上,CSharp 驱动程序教程似乎已经过时了。

但是,API 文档是正确的;那里有一个 MongoCredential 类(单数)的条目。

您可以使用构造函数或静态工厂方法之一(CreateGssapiCredential或CreateMongoCRCredential)创建凭据。

接下来,为了使用凭据,您不能在GetDatabase()调用中指定它们,但更早地在创建服务器时指定它们,如下所示:

var db1Credential = MongoCredential.CreateMongoCRCredential("db1", "uid", "pwd");
var db2Credential = MongoCredential.CreateMongoCRCredential("db2", "uid", "pwd");
var server = new MongoServer(
    new MongoServerSettings
        {
            Server = new MongoServerAddress("localhost", 27017),
            Credentials = new[]
                            {
                                db1Credential,
                                db2Credential
                            }
        });