Theo liên kết này Trang web Mongo và xem Phần
Vấn đề là bạn đang xác thực người dùng mongoadmin cho clientdb. Nhưng người dùng mongoadmin được xác thực thành admin db. Xác thực người dùng mongoadmin và sau đó bạn có thể truy cập clientdb.
Dưới đây là mẫu sử dụng phương pháp URI:
IMongoClient _client;
public readonly IMongoDatabase _database;
public MongoContext_URIBased()
{
var mongoUrl = new MongoUrl("mongodb://mongoadmin:[email protected]:2020/admin");
_client = new MongoClient(mongoUrl);
_database = _client.GetDatabase("clientdb");
}
Và theo mã của bạn, bên dưới sẽ hoạt động:
Tệp cấu hình của bạn sẽ giống như sau:
<appSettings>
<add key="MongoMasterDatabaseName" value="admin" />
<add key="MongoUsername" value="mongoadmin" />
<add key="MongoPassword" value="secret" />
<add key="MongoPort" value="2020" />
<add key="MongoHost" value="172.17.103.158" />
<add key="MongoClientDatabaseName" value="clientDb" />
</appSettings>
Và mã C #:
public class MongoContext
{
IMongoClient _client;
public readonly IMongoDatabase _database;
public MongoContext()
{
MongoCredential credential = MongoCredential.CreateCredential(ConfigurationManager.AppSettings["MongoMasterDatabaseName"], ConfigurationManager.AppSettings["MongoUsername"], ConfigurationManager.AppSettings["MongoPassword"]);
var settings = new MongoClientSettings
{
Credential = credential,
Server = new MongoServerAddress(, Convert.ToInt32(ConfigurationManager.AppSettings["MongoPort"]))
};
_client = new MongoClient(settings);
_database = _client.GetDatabase(ConfigurationManager.AppSettings["MongoClientDatabaseName"]);
}
}
Như bạn có thể thấy, người dùng mongoadmin sẽ được xác thực với admin db trước. Sau đó, bạn có thể kết nối với clientdb