MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Impossible de se connecter à MongoDb (en utilisant l'authentification) à l'aide de mongocsharpdriver 2.7.0

Suivez ce lien Mongo Site et regardez la section

Le problème est que vous authentifiez l'utilisateur mongoadmin pour clientdb. Mais l'utilisateur mongoadmin est authentifié auprès de la base de données admin. Authentifiez l'utilisateur mongoadmin et vous pourrez ensuite accéder à clientdb.

Vous trouverez ci-dessous l'exemple utilisant la méthode 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");
        } 

Et selon votre code, ci-dessous fonctionnera :

Votre fichier de configuration devrait ressembler à :

<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>

Et le code 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"]);
        }
    }

Comme vous pouvez le voir, l'utilisateur mongoadmin est d'abord authentifié auprès de la base de données admin. Ensuite, vous pouvez vous connecter à clientdb