使用连接字符串进行mongodb身份验证

Him*_*ara 3 c# mongodb

Mongo进程的连接字符串具有/ database选项.这是什么意思?这是否意味着它在mongo服务器上验证特定数据库.提前谢谢

Rob*_*tam 5

使用C#驱动程序,您通常不会使用在连接字符串上放置数据库名称的选项.部分支持与其他驱动程序提供某种程度的兼容性.

MongoServer.Create忽略数据库名称.连接字符串上的任何凭据(用户名/密码)都用作所有数据库的默认凭据.

数据库名称仅由MongoDatabase.Create使用,它调用MongoServer.Create然后只为您调用GetDatabase.

所以:

var connectionString = "mongodb://localhost/database";
var database = MongoDatabase.Create(connectionString);
Run Code Online (Sandbox Code Playgroud)

只是一个捷径:

var connectionString = "mongodb://localhost";
var server = MongoServer.Create(connectionString);
var database = server.GetDatabase("database");
Run Code Online (Sandbox Code Playgroud)

在您首次尝试使用数据库之前,实际上不会进行身份验证.