Драйвер MongoDB C# не удалось запустить команду базы данных аутентификации
Я хочу пройти аутентификацию в MongoDB с помощью C#, не передавая строку подключения / учетные данные на MongoClient()
пример. Как будто мы делаем это в MongoDB Shell, мы называем monog -> db.auth(<username>,<password>)
это значит сначала подключиться к базе данных, а затем пройти аутентификацию.
Написать код C#
Это мой код:var mongoClient = new MongoClient(); var testDB = mongoClient.GetDatabase("test"); string username = txtUserName.Text; string password = txtPassword.Password; // Check password var cmd = new BsonDocument("authenticate", new BsonDocument { {"username",username }, {"password",password } }); var queryResult = testDB.RunCommand<BsonDocument>(cmd);
Мой код подключается к MongoDB и вызывает команду Database для аутентификации ( описано здесь. Это не
db.auth()
Shell метод), чтобы войти с нимЗапустите MongoDB с помощью
--auth
вариант.- Запустите мой код.
После шага 3 я столкнулся с этой проблемой. Мой код сказать
Дополнительная информация: Ошибка команды проверки подлинности: поле отсутствует / неверный тип в полученной команде проверки подлинности.
Я прочитал документы MongoDB (также ссылку, которую я добавил выше), я не могу найти то, что мне не хватало.
1 ответ
Я думаю, что вы можете использовать JsonCommand
звонить eval
функция для выполнения db.auth
функция как это - не проверено -:
var command = new JsonCommand<BsonDocument>(@"{ eval: ""db.auth(\""username\"", \""password\"");"" }");
var result = db.RunCommand(command);