4

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

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

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

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

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

4

1 回答 1

7

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

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

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

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

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

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
                            }
        });
于 2013-10-25T08:09:04.267 回答