Ikuti tautan ini Situs Mongo dan lihat Bagian
Masalahnya adalah Anda mengautentikasi pengguna mongoadmin untuk clientdb. Tetapi pengguna mongoadmin diautentikasi ke admin db. Dapatkan otentikasi pengguna mongoadmin dan kemudian Anda dapat mengakses clientdb.
Di bawah ini adalah contoh menggunakan metode 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");
}
Dan Menurut kode Anda, di bawah ini akan berfungsi:
File konfigurasi Anda harus seperti:
<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>
Dan kode 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"]);
}
}
Seperti yang Anda lihat, pengguna mongoadmin diautentikasi ke admin db terlebih dahulu. Kemudian Anda dapat terhubung ke clientdb