sql >> Databasteknik >  >> NoSQL >> MongoDB

Det går inte att ansluta till MongoDb (med autentisering) med mongocsharpdriver 2.7.0

Följ den här länken Mongo Site och titta på avsnitt

Problemet är att du autentiserar mongoadmin-användaren för clientdb. Men mongoadmin-användare är autentiserad till admin db. Få mongoadmin-användaren autentiserad och sedan kan du komma åt clientdb.

Nedan är provet med URI-metoden:

        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");
        } 

Och enligt din kod kommer nedan att fungera:

Din konfigurationsfil bör vara så här:

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

Och C#-kod :

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

Som du kan se, autentiseras mongoadmin-användaren till admin db först. Sedan kan du ansluta till clientdb



  1. Hur tar man bort egenskapen för kapslade objekt från MongoDB-dokument?

  2. Redis försöker ansluta till localhost på Heroku istället för REDIS_URL

  3. hur man hittar specifik sträng i nyckelvärdespar i mongodb

  4. mongodb misslyckades:fel vid anslutning till db-server:inga servrar som kan nås