我们需要在$ external中创建用户,以允许他们通过LDAP登录。 在命令shell上,使用以下命令:
db.getSiblingDB('$external').createUser({ user : 'username', roles: [ { role: 'dbOwner', db: 'databasename' } ] } )
工作正常。
但是,只要我们通过Java Driver执行相同的命令,我们就会遇到异常。
Java代码:
DB db = mongoClient.getDB("$external");
String command = "db.getSiblingDB('$external').createUser({ user : '"+ userName +"', roles: [ { role: 'dbOwner', db: 'CMRepWs_'"+userName.toUpperCase()+"' } ] } )";
CommandResult result = db.command(command);
结果讯息:
{ "serverUsed" : "lblasa1t.cm-cic.fr:27017" , "ok" : 0.0 , "errmsg" : "no such command: db.getSiblingDB('$external').createUser({ user : 'username', roles: [ { role: 'dbOwner', db: 'CMRepWs_username' } ] } )" , "code" : 59 , "bad cmd" : { "db.getSiblingDB('$external').createUser({ user : 'username', roles: [ { role: 'dbOwner', db: 'CMRepWs_username' } ] } )" : true}}
我们使用Java Driver 2.13.1运行MongoDb版本3.0.1。
如果有人知道我们如何通过Java Driver在$ external中创建用户,那就太棒了。
非常感谢和最诚挚的问候, 雅各布
修改
我们还使用以下代码进行测试:
DB db = mongoClient.getDB("$external");
String dbOwner = "dbOwner";
String dbName = "CMRepWs_" + userName.toUpperCase();
String role = "{ role: '" + dbOwner + "', db: '" + dbName + "'}";
Map<String, Object> commandArguments = new BasicDBObject();
String[] roles = new String[] { role };
commandArguments.put("createUser", userName);
commandArguments.put("roles", roles);
BasicDBObject command = new BasicDBObject(commandArguments);
CommandResult result = db.command(command);
结果是:
{ "serverUsed" : "server:27017" , "ok" : 0.0 , "errmsg" : "No role named { role: 'dbOwner', db: 'CMRepWs_Username'}@$external" , "code" : 31}
在CommandResult对象中。
答案 0 :(得分:0)
以下代码正常运行:
void Page_Load(Object sender, EventArgs e)
{
// Manually register the event-handling method for the
// CheckedChanged event of the CheckBox control.
checkbox1.CheckedChanged += new EventHandler(this.Check_Clicked);
}
void Check_Clicked(Object sender, EventArgs e)
{
**//This is only sample code**
// do your code
if (panel2.Visible)
{
panel2.Visible = false;
cmdAdvanced.Visible = true;
}
}
同样对于角色,需要强调新的BasicDBObject。
此致 雅各布