예제 #1
0
파일: User.cs 프로젝트: jango2015/MongoCola
 /// <summary>
 ///     Adds a user to this database.
 /// </summary>
 /// <param name="user">The user.</param>
 public static void AddUserEx(MongoCollection col, User user)
 {
     var document = col.FindOneAs<BsonDocument>(Query.EQ("user", user.Username));
     if (document == null)
     {
         document = new BsonDocument("user", user.Username);
     }
     document["roles"] = user.Roles;
     if (document.Contains("readOnly"))
     {
         document.Remove("readOnly");
     }
     //必须要Hash一下Password
     document["pwd"] = MongoUser.HashPassword(user.Username, user.Password);
     //OtherRole 必须放在Admin.system.users里面
     if (col.Database.Name == ConstMgr.DatabaseNameAdmin)
     {
         document["otherDBRoles"] = user.OtherDbRoles;
     }
     if (string.IsNullOrEmpty(user.Password))
     {
         document["userSource"] = user.UserSource;
     }
     col.Save(document);
 }
예제 #2
0
파일: User.cs 프로젝트: jango2015/MongoCola
 /// <summary>
 ///     AddUserToSystem
 /// </summary>
 /// <param name="newUserEx">用户信息</param>
 /// <param name="isAdmin">是否是Admin</param>
 public static void AddUserToSystem(User newUserEx, bool isAdmin)
 {
     //必须使用MongoCredentials来添加用户,不然的话,Password将使用明文登入到数据库中!
     //这样的话,在使用MongoCredentials登入的时候,会发生密码错误引发的认证失败
     MongoCollection users;
     users = isAdmin
         ? RuntimeMongoDbContext.GetCurrentServer()
             .GetDatabase(ConstMgr.DatabaseNameAdmin)
             .GetCollection(ConstMgr.CollectionNameUser)
         : RuntimeMongoDbContext.GetCurrentDataBase().GetCollection(ConstMgr.CollectionNameUser);
     //以下代码 1.Ver2.4以前的有ReadOnly,FindUser需要寻找ReadOnly字段
     //        2.这个其实不用检查,有的话修改,没有的话,新建
     //if (users.Database.FindUser(newUserEx.Username) == null)
     //{
     AddUserEx(users, newUserEx);
     //}
 }
예제 #3
0
 /// <summary>
 /// </summary>
 /// <param name="db"></param>
 /// <param name="username"></param>
 public void AddUser(MongoDatabase db, string username)
 {
     var userInfo =
         db.GetCollection(ConstMgr.CollectionNameUser).FindOneAs<BsonDocument>(Query.EQ("user", username));
     if (userInfo != null)
     {
         var user = new User();
         user.Roles = userInfo["roles"].AsBsonArray;
         if (userInfo.Contains("otherDBRoles"))
         {
             user.OtherDbRoles = userInfo["otherDBRoles"].AsBsonDocument;
         }
         UserList.Add(db.Name, user);
     }
 }