2014-04-08 7 views
5

Ich verwende die neueste Version des Treibers und MongoDB Datenbank 2.6 zu erstellen, und ich verwenden, um Benutzer zu erstellen mit dem folgenden Code:Wie ein Benutzer in MongoDB

 MongoUser _user1 = new MongoUser("username", "password", false); 

     MongoDatabase.AddUser(_user1); 

und jetzt ist es zu sagen MongoDatabase.AddUser() ist veraltet durch welche die folgenden Informationen:

... ist veraltet: Verwenden Sie die neue Benutzerverwaltung Befehl ‚create‘ oder ‚Updateuser‘ „

.

Wo ist dieser neue Benutzerverwaltungsbefehl? Wie erstelle ich einen Benutzer mit dem neuen MongoDB C# -Treiber?

Antwort

0

Ich habe eine Suche nach ‚create‘ auf dem neuesten Code auf der GitHub-Repository: https://github.com/mongodb/mongo-csharp-driver/search?q=createUser&ref=cmdform

Zum Zeitpunkt des Schreibens, der einzige Verweis auf den ‚create‘ is here

Das Verfahren markiert wurde als veraltet aber in this commit

Allerdings; Bei näherer Betrachtung des Codes, ich see this:

if (_server.RequestConnection.ServerInstance.Supports(FeatureId.UserManagementCommands)) 
    { 
     AddUserWithUserManagementCommands(user); 
    } 
    else 
    { 
     AddUserWithInsert(user); 
    } 

So wird die gewünschte Methode unter der Haube Aufruf

2

Ich bin mit MongoDB 2.6.2 und aktuellen C# Treiber 1.9.2. Diese ist, wie Sie neue Benutzer mit ‚create‘ hinzufügen:

public static void AddUser(string user, string password, string[] roles) 
{ 
    var database = GetDatabase(); 
    var command = new CommandDocument { { "createUser", user}, { "pwd", password }, { "roles", new BsonArray(roles) } }; 
    var result = database.RunCommand(command); 
} 
4

Für Interessenten an einen Benutzer mit dem C# v2.0.1-Treiber erstellen und MongoDB v3.0.6 verwenden Sie die folgenden Schritte aus:

var client = new MongoClient(connectionString); 
var database = client.GetDatabase("database_to_create_user_in"); 
var user = new BsonDocument { { "createUser", "fred" }, { "pwd", "some_secure_password" }, { "roles", new BsonArray { new BsonDocument { { "role", "read" }, { "db", "database_to_create_user_in" } } } } }; 
await database.RunCommandAsync<BsonDocument>(user);