首页 文章

MongoDB C#驱动程序MongoCredential对象

提问于
浏览
2

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

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

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

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

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

1 回答

  • 6

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

    事实上,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
                                }
            });
    

相关问题