2014-07-05 17 views
1

J'utilise ScopedDbConnection, il fait dans chaque opération db. Si je le fais:mongodb pilote C++ authentifier

mongo::ScopedDbConnection conn(host); 
conn->auth(BSON("user"<<"user1"<<"pwd"<<"password1")); 
... 
conn.done(); 

Cela signifie qu'il y aura un processus d'authentification implicite dans chaque opération db, cela n'est pas nécessaire. Dans le pilote java, il y a une classe DB qui a une fonction d'authentification, après "db.authenticate (...)", toutes les opérations suivantes peuvent être exécutées plutôt qu'auth sur chaque connexion db comme le code ci-dessus.

Y a-t-il moyen d'authentifier seulement une fois dans le pilote C++?

Répondre

0

Tenir compte de la solution suivante:

conn_ = new DBClientReplicaSet(...); 
conn_->connect(); 
conn_->auth(BSON("user" << "xxx" << "password" << "xxx")); 

Ensuite, vous pouvez utiliser conn_ faire toute opération de base de données.

+0

Ce "conn_" ne peut pas être concurrent – jean

+0

ouais, peut-être. Dans notre application, nous n'utilisons pas ** conn _ ** simultanément. – rookiepig

Questions connexes