MongoDB驱动程序的文档似乎与从NuGet中提取的实际驱动程序不同。
更具体地说,记录的“MongoCredentials”(复数)不存在,只有“MongoCredential”(单数)。此外,MongoServer.GetDatabase似乎没有接受MongoCredential的构造函数,只有MongoDatabaseSettings(以及命名数据库的字符串),我看不到明显的方式为MongoDatabaseSettings对象提供MongoCredential对象。
我没有在Google上找到我在驱动程序中找到的对象的任何示例,只有与(过时的?)官方文档一致的对象。
我正在使用的驱动程序(在NuGet包管理器中)被称为“MongoDB C#官方驱动程序。”
总结:一个实际如何在C#驱动程序中提供凭据?
答案 0 :(得分:7)
我也在使用NuGet的Official MongoDB C# driver,版本1.8.3。
确实,CSharp Driver Tutorial似乎过时了。
然而,API documentation是正确的;那里有the MongoCredential class(单数)的条目。
您可以使用the constructor或其中一种静态工厂方法(CreateGssapiCredential或CreateMongoCRCredential)创建凭证。
接下来,为了使用凭据,您无法在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
}
});