MongoDB C#驱动程序MongoCredential对象

时间:2013-10-24 19:13:26

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

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

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

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

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

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

1 个答案:

答案 0 :(得分:7)

我也在使用NuGet的Official MongoDB C# driver,版本1.8.3。

确实,CSharp Driver Tutorial似乎过时了。

然而,API documentation是正确的;那里有the MongoCredential class(单数)的条目。

您可以使用the constructor或其中一种静态工厂方法(CreateGssapiCredentialCreateMongoCRCredential)创建凭证。

接下来,为了使用凭据,您无法在GetDatabase()来电中指定凭据,但在create the 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
                            }
        });