MongoDB驱动程序的文档似乎与从NuGet提取的实际驱动程序不同。
更具体地说,已记录的“ MongoCredentials”(复数)不存在,而仅存在“ MongoCredential”(单数)。此外,MongoServer.GetDatabase似乎没有接受MongoCredential的构造函数,仅接受MongoDatabaseSettings(以及命名数据库的字符串),而且我没有明显的办法为MongoDatabaseSettings对象提供MongoCredential对象。
我没有在Google上找到任何带有我在驱动程序中找到的对象的示例,只有那些与(已过时?)官方文档一致的示例。
我正在使用的驱动程序在NuGet程序包管理器中称为“ Official MongoDB C#驱动程序”。
总结一下:如何实际在C#驱动程序中提供凭据?
我还使用了NuGet的官方MongoDB C#驱动程序(版本1.8.3)。
确实,CSharp驱动程序教程似乎已过时。
但是,API文档是正确的。这里有一个MongoCredential类的条目(单数)。
您可以使用构造函数或静态工厂方法之一(CreateGssapiCredential或CreateMongoCRCredential)来创建证书。
接下来,为了使用凭据,您不能在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
}
});
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句