2013-10-24 36 views
2

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

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

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

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

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

回答

5

我还在使用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 
          } 
     });