Ejemplo n.º 1
0
        /// <summary>
        /// Remove A User From Admin database
        /// </summary>
        /// <param name="strUser">UserName</param>
        public static void RemoveUserFromSystem(String strUser, Boolean IsAdmin)
        {
            MongoServer     mongoSvr = SystemManager.GetCurrentServer();
            MongoCollection users;

            if (IsAdmin)
            {
                users = mongoSvr.GetDatabase(DATABASE_NAME_ADMIN).GetCollection(MongoDBHelper.COLLECTION_NAME_USER);
            }
            else
            {
                users = SystemManager.GetCurrentDataBase().GetCollection(MongoDBHelper.COLLECTION_NAME_USER);
            }
            users.Remove(MongoDB.Driver.Builders.Query.EQ("user", strUser));
        }
Ejemplo n.º 2
0
        /// <summary>
        ///     get current Server Information
        /// </summary>
        /// <returns></returns>
        public static String GetCurrentSvrInfo()
        {
            String      rtnSvrInfo = String.Empty;
            MongoServer mongosvr   = SystemManager.GetCurrentServer();

            rtnSvrInfo  = "IsArbiter:" + mongosvr.Instance.IsArbiter + Environment.NewLine;
            rtnSvrInfo += "IsPrimary:" + mongosvr.Instance.IsPrimary + Environment.NewLine;
            rtnSvrInfo += "IsSecondary:" + mongosvr.Instance.IsSecondary + Environment.NewLine;
            rtnSvrInfo += "Address:" + mongosvr.Instance.Address + Environment.NewLine;
            if (mongosvr.Instance.BuildInfo != null)
            {
                //Before mongo2.0.2 BuildInfo will be null
                rtnSvrInfo += "VersionString:" + mongosvr.Instance.BuildInfo.VersionString + Environment.NewLine;
                rtnSvrInfo += "SysInfo:" + mongosvr.Instance.BuildInfo.SysInfo + Environment.NewLine;
            }
            return(rtnSvrInfo);
        }
Ejemplo n.º 3
0
        /// <summary>
        /// 当前对象的MONGO命令
        /// </summary>
        /// <param name="cmd">命令对象</param>
        /// <returns></returns>
        public static void ExecuteMongoCommand(MongoCommand cmd)
        {
            var Command = new CommandDocument {
                { cmd.CommandString, 1 }
            };
            List <CommandResult> ResultCommandList = new List <CommandResult>();

            CommandResult rtn = new CommandResult();

            try
            {
                switch (cmd.RunLevel)
                {
                case PathLv.CollectionLV:
                    rtn = ExecuteMongoColCommand(cmd.CommandString, SystemManager.GetCurrentCollection());
                    break;

                case PathLv.DatabaseLV:
                    rtn = ExecuteMongoDBCommand(Command, SystemManager.GetCurrentDataBase());
                    break;

                case PathLv.ServerLV:
                    rtn = ExecuteMongoSvrCommand(Command, SystemManager.GetCurrentServer());
                    break;

                default:
                    break;
                }
                ResultCommandList.Add(rtn);
                MyMessageBox.ShowMessage(cmd.CommandString, cmd.CommandString + " Result", MongoDBHelper.ConvertCommandResultlstToString(ResultCommandList), true);
            }
            catch (System.IO.IOException ex)
            {
                MyMessageBox.ShowMessage(cmd.CommandString, "IOException,Try to set Socket TimeOut more long at connection config", ex.ToString(), true);
            }
            catch (Exception ex)
            {
                SystemManager.ExceptionDeal(ex, cmd.CommandString);
            }
        }
Ejemplo n.º 4
0
        //这里有个漏洞,对于数据库来说,对于local的验证和对于admin的验证是相同的。
        //如果是加入用户到服务器中,是加入到local还是admin,需要考虑一下。

        /// <summary>
        /// AddUserToSystem
        /// </summary>
        /// <param name="newUserEx">用户信息</param>
        /// <param name="IsAdmin">是否是Admin</param>
        public static void AddUserToSystem(MongoUserEx newUserEx, Boolean IsAdmin)
        {
            MongoServer mongoSvr = SystemManager.GetCurrentServer();
            //必须使用MongoCredentials来添加用户,不然的话,Password将使用明文登入到数据库中!
            //这样的话,在使用MongoCredentials登入的时候,会发生密码错误引发的认证失败
            MongoCollection users;

            if (IsAdmin)
            {
                users = mongoSvr.GetDatabase(DATABASE_NAME_ADMIN).GetCollection(MongoDBHelper.COLLECTION_NAME_USER);
            }
            else
            {
                users = SystemManager.GetCurrentDataBase().GetCollection(MongoDBHelper.COLLECTION_NAME_USER);
            }
            //以下代码 1.Ver2.4以前的有ReadOnly,FindUser需要寻找ReadOnly字段
            //         2.这个其实不用检查,有的话修改,没有的话,新建
            //if (users.Database.FindUser(newUserEx.Username) == null)
            //{
            AddUserEx(users, newUserEx);
            //}
        }
        /// <summary>
        /// 当前对象的MONGO命令
        /// </summary>
        /// <param name="mMongoCommand">命令对象</param>
        /// <param name="ShowMsgBox"></param>
        /// <returns></returns>
        public static CommandResult ExecuteMongoCommand(MongoCommand mMongoCommand, Boolean ShowMsgBox = true)
        {
            List <CommandResult> ResultCommandList = new List <CommandResult>();

            CommandResult mCommandResult = new CommandResult(new BsonDocument());

            try
            {
                switch (mMongoCommand.RunLevel)
                {
                case PathLv.CollectionLV:
                    if (String.IsNullOrEmpty(mMongoCommand.CommandString))
                    {
                        mCommandResult = ExecuteMongoColCommand(mMongoCommand.cmdDocument, SystemManager.GetCurrentCollection());
                    }
                    else
                    {
                        mCommandResult = ExecuteMongoColCommand(mMongoCommand.CommandString, SystemManager.GetCurrentCollection());
                    }
                    break;

                case PathLv.DatabaseLV:
                    mCommandResult = ExecuteMongoDBCommand(mMongoCommand.cmdDocument, SystemManager.GetCurrentDataBase());
                    break;

                case PathLv.InstanceLV:
                    mCommandResult = ExecuteMongoSvrCommand(mMongoCommand.cmdDocument, SystemManager.GetCurrentServer());
                    break;

                default:
                    break;
                }
                ResultCommandList.Add(mCommandResult);
                if (ShowMsgBox)
                {
                    MyMessageBox.ShowMessage(mMongoCommand.CommandString, mMongoCommand.CommandString + " Result", MongoDBHelper.ConvertCommandResultlstToString(ResultCommandList), true);
                }
            }
            catch (System.IO.IOException ex)
            {
                SystemManager.ExceptionDeal(ex, mMongoCommand.CommandString, "IOException,Try to set Socket TimeOut more long at connection config");
            }
            catch (Exception ex)
            {
                SystemManager.ExceptionDeal(ex, mMongoCommand.CommandString);
            }

            return(mCommandResult);
        }