Exemple #1
0
        public string Login(string userid, string userpwd)
        {
            //1.校验
            dynamic user = Dbop.Get(long.Parse(userid))?.ToDynamic();

            if (user == null)
            {
                return("error: user not exist.");
            }
            if (user.userPwd != EncryptHelper.SHA256(userpwd))
            {
                return("error: wrong password.");
            }

            //2.给token
            string output = $"{userid}|{DateTime.Now.ToString("yyyy-MM-dd")}";
            string token  = EncryptHelper.AES_Encrypt(output);

            return(string.Format(@"
<html>
<head><script>
document.cookie='NSPTK={0}';
document.write('Redirecting...');
window.location.href='main.html';
</script>
</head>
</html>
            ", token));
        }
        public string Login(string username, string userpwd)
        {
            //1.校验
            dynamic user = Dbop.Get(username)?.ToDynamic();

            if (user == null)
            {
                return("Error: User not exist.Please <a href='javascript:history.go(-1)'>go backward</a>.");
            }


            if (user.userPwd != EncryptHelper.SHA256(userpwd))
            {
                return("Error: Wrong password.Please <a href='javascript:history.go(-1)'>go backward</a>.");
            }

            //2.给token
            string output = $"{username}|{DateTime.Now.ToString("yyyy-MM-dd")}";
            string token  = EncryptHelper.AES_Encrypt(output);

            return(string.Format(@"
<html>
<head><script>
document.cookie='NSPTK={0}; path=/;';
document.write('Redirecting...');
window.location.href='main.html';
</script>
</head>
</html>
            ", token));
        }
        public List <string> GetUsers()
        {
            List <string> userStrList = Dbop.Select(0, 999);

            for (int i = 0; i < userStrList.Count; i++)
            {
                var user       = userStrList[i].ToObject <UserDTO>();
                var userBounds = ServerContext.ServerConfig.BoundConfig.UserPortBounds;
                if (userBounds.ContainsKey(user.userId))
                {
                    if (userBounds[user.userId].Bound != null)
                    {
                        user.boundPorts = string.Join(',', userBounds[user.userId].Bound);
                    }
                }
                var banlist = ServerContext.ServerConfig.BoundConfig.UsersBanlist;
                user.isBanned = banlist?.Contains(user.userId).ToString().ToLower();
                //

                user.isOnline = ServerContext.Clients.ContainsKey(int.Parse(user.userId)).ToString().ToLower();

                userStrList[i] = user.ToJsonString();
            }

            return(userStrList);
            //}
        }
        public void UpdateUser(string oldUserName, string newUserName, string userPwd, string isAdmin)
        {
            if (!Dbop.Exist(oldUserName))
            {
                throw new Exception($"error: user {oldUserName} not exist.");
            }
            if (newUserName != oldUserName && Dbop.Exist(newUserName))
            {
                throw new Exception($"error: user {newUserName} exist.");
            }
            //var user = new User
            //{
            //    userId = SUPER_VARIABLE_INDEX_ID,  //索引id
            //    userName = userName,
            //    userPwd = EncryptHelper.SHA256(userpwd),
            //    regTime = DateTime.Now.ToString(),
            //    isAdmin = isAdmin
            //};
            User user = Dbop.Get(oldUserName)?.ToObject <User>();

            user.isAdmin  = isAdmin;
            user.userName = newUserName;
            if (userPwd != "XXXXXXXX")
            {
                user.userPwd = EncryptHelper.SHA256(userPwd);
            }

            //if (isAdmin == true) user.
            //1.增加用户
            Dbop.UpdateByName(oldUserName, newUserName, user.ToJsonString());
        }
Exemple #5
0
 public List <string> GetUsers()
 {
     //using (var dbop = Dbop.Open())
     //{
     return(Dbop.Select(0, 10));
     //}
 }
        public void RemoveUser(string userIndex, string userNames)
        {
            try
            {
                var arr         = userIndex.Split(',');
                var userNameArr = userNames.Split(',');
                for (var i = arr.Length - 1; i > -1; i--)
                {
                    Dbop.Delete(int.Parse(arr[i]));
                    Dbop.DeleteHash(userNameArr[i]);
                }

                //删除用户绑定
                lock (userLocker)
                {
                    if (ServerContext.ServerConfig.BoundConfig.UserPortBounds.ContainsKey(userIndex))
                    {
                        ServerContext.ServerConfig.BoundConfig.UserPortBounds.Remove(userIndex);
                    }
                }
                //刷新绑定列表
                ServerContext.UpdatePortMap();
                ServerContext.ServerConfig.SaveChanges(ServerContext.ServerConfigPath);
            }
            catch (Exception ex)
            {
                throw new Exception("删除用户出错:" + ex.Message);
            }
        }
        public bool ValidateUserName(string isEdit, string oldUsername, string newUserName)
        {
            if (isEdit == "1" && oldUsername == newUserName)
            {
                return(true);
            }

            return(!Dbop.Exist(newUserName));
        }
Exemple #8
0
        public void AddUser(string userid, string userpwd)
        {
            if (Dbop.Exist(userid))
            {
                throw new Exception("error: user exist.");
            }
            var user = new { userId = userid, userPwd = EncryptHelper.SHA256(userpwd), regTime = DateTime.Now.ToString() };

            //1.增加用户
            Dbop.Insert(long.Parse(userid), user.ToJsonString());
        }
 public void RemoveUser(string userIndex)
 {
     try
     {
         Dbop.Delete(int.Parse(userIndex));
     }
     catch (Exception ex)
     {
         throw new Exception("删除用户出错:" + ex.Message);
     }
 }
Exemple #10
0
        /// <summary>
        /// 批量加入
        /// </summary>
        /// <param name="objlist"></param>
        /// <returns></returns>
        public static KeyValuePair <bool, string> AddNewBatch(List <T> objlist)
        {
            Dictionary <string, object> paramList;

            foreach (T item in objlist)
            {
                paramList = new Dictionary <string, object>();
                Dbop.ExecuteSqlSuc(SQLInsert <T>(item, paramList), paramList);
            }
            return(new KeyValuePair <bool, string>(true, null));
        }
Exemple #11
0
 public void RemoveUser(string userIndex)
 {
     try
     {
         var arr = userIndex.Split(',');
         for (var i = arr.Length - 1; i > -1; i--)
         {
             Dbop.Delete(int.Parse(arr[i]));
         }
     }
     catch (Exception ex)
     {
         throw new Exception("删除用户出错:" + ex.Message);
     }
 }
Exemple #12
0
        /// <summary>
        /// 获取列表模型
        /// <para>(可通过重写GetByDataRow函数更改填充模型数据方式)</para>
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="model"></param>
        /// <param name="wh">sql条件(where字符任意)</param>
        /// <returns></returns>
        public static List <T> FindList(string wh = "")
        {
            List <T> rl  = new List <T>();
            string   sql = GetSelectSQL <T>(wh);

            if (!string.IsNullOrEmpty(sql))
            {
                DataTable dt = Dbop.GetDataTable(sql);
                foreach (DataRow dr in dt.Rows)
                {
                    rl.Add(GetModelByDataRow <T>(dr));
                }
            }
            return(rl);
        }
Exemple #13
0
        public LoginFormClientResult LoginFromClient(string username, string userpwd)
        {
            User   user        = null;
            string isAnonymous = "0";

            //匿名登录时創建一個用戶
            if (ServerContext.SupportAnonymousLogin && string.IsNullOrEmpty(username))
            {
                username = "******" + RandomHelper.NextString(12, false);
                userpwd  = RandomHelper.NextString(20);
                user     = new User
                {
                    userId      = NSmartDbOperator.SUPER_VARIABLE_INDEX_ID, //索引id
                    userName    = username,
                    userPwd     = EncryptHelper.SHA256(userpwd),
                    regTime     = DateTime.Now.ToString(),
                    isAdmin     = "0",
                    isAnonymous = "1"
                };
                //if (isAdmin == true) user.
                //1.增加用户
                Dbop.Insert(username, user.ToJsonString());
            }
            //1.校验
            user = Dbop.Get(username)?.ToObject <User>();
            if (user == null)
            {
                throw new Exception("error: user not exist.");
            }

            if (ServerContext.ServerConfig.BoundConfig.UsersBanlist.Contains(user.userId))
            {
                throw new Exception("Error: User has banned.");
            }

            if (user.userPwd != EncryptHelper.SHA256(userpwd))
            {
                throw new Exception("error: wrong password.");
            }

            //2.给token
            string output = $"{username}|{DateTime.Now.ToString("yyyy-MM-dd")}";
            string token  = EncryptHelper.AES_Encrypt(output);

            return(new LoginFormClientResult {
                Token = token, Version = Global.NSmartProxyServerName, Userid = user.userId
            });
        }
        public UserStatusDTO GetUserStatus()
        {
            //Dbop.Close();
            int totalCount  = Dbop.GetCount();
            var banCount    = ServerContext.ServerConfig.BoundConfig.UsersBanlist.Count;
            var onlineCount = ServerContext.Clients.Count();
            var restCount   = totalCount - banCount - onlineCount;

            UserStatusDTO dto = new UserStatusDTO
            {
                onlineUsersCount  = onlineCount,
                offlineUsersCount = restCount,
                banUsersCount     = banCount
            };

            return(dto);
        }
Exemple #15
0
        /// <summary>
        /// 获取单个模型
        /// <para>(可通过重写GetByDataRow函数更改填充模型数据方式)</para>
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="model"></param>
        /// <param name="wh">sql条件(where字符任意)</param>
        /// <returns></returns>
        public static T Find(string wh = "")
        {
            string sql = GetSelectSQL <T>(wh);

            if (string.IsNullOrEmpty(sql))
            {
                return(default(T));
            }
            sql = sql.Insert(6, " TOP 1");
            DataTable dt = Dbop.GetDataTable(sql);

            if (dt.Rows.Count == 0)
            {
                return(default(T));
            }
            return(GetModelByDataRow <T>(dt.Rows[0]));
        }
        public void AddUserV2(string userName, string userpwd, string isAdmin)
        {
            if (Dbop.Exist(userName))
            {
                throw new Exception("error: user exist.");
            }
            var user = new User
            {
                userId   = SUPER_VARIABLE_INDEX_ID, //索引id
                userName = userName,
                userPwd  = EncryptHelper.SHA256(userpwd),
                regTime  = DateTime.Now.ToString(),
                isAdmin  = isAdmin
            };

            //if (isAdmin == true) user.
            //1.增加用户
            Dbop.Insert(userName, user.ToJsonString());
        }
Exemple #17
0
        public string LoginFromClientById(string userid, string userpwd)
        {
            //1.校验
            dynamic user = Dbop.Get(long.Parse(userid))?.ToDynamic();

            if (user == null)
            {
                return("error: user not exist.");
            }
            if (user.userPwd != userpwd)
            {
                return("error: wrong password.");
            }

            //2.给token
            string output = $"{userid}|{DateTime.Now.ToString("yyyy-MM-dd")}";

            return(EncryptHelper.AES_Encrypt(output));
        }
Exemple #18
0
        public LoginFormClientResult LoginFromClient(string username, string userpwd)
        {
            //1.校验
            var user = Dbop.Get(username)?.ToObject <User>();

            if (user == null)
            {
                throw new Exception("error: user not exist.");
            }
            if (user.userPwd != EncryptHelper.SHA256(userpwd))
            {
                throw new Exception("error: wrong password.");
            }

            //2.给token
            string output = $"{username}|{DateTime.Now.ToString("yyyy-MM-dd")}";
            string token  = EncryptHelper.AES_Encrypt(output);

            return(new LoginFormClientResult {
                Token = token, Version = Global.NSmartProxyServerName, Userid = user.userId
            });
        }
        public void RemoveUser(string userIndex, string userNames)
        {
            try
            {
                var arr         = userIndex.Split(',');
                var userNameArr = userNames.Split(',');
                //for (var i = arr.Length - 1; i > -1; i--)
                //{
                //    Dbop.Delete(int.Parse(arr[i]));
                //    Dbop.DeleteHash(userNameArr[i]);
                //}

                //删除用户绑定
                lock (userLocker)
                {
                    if (ServerContext.ServerConfig.BoundConfig.UserPortBounds.ContainsKey(userIndex))
                    {
                        ServerContext.ServerConfig.BoundConfig.UserPortBounds.Remove(userIndex);
                    }
                }
                //刷新绑定列表
                ServerContext.UpdatePortMap();
                ServerContext.ServerConfig.SaveChanges(ServerContext.ServerConfigPath);
                for (var i = arr.Length - 1; i > -1; i--)
                {
                    var userId  = int.Parse(arr[i]);
                    var userDto = Dbop.Get(userNameArr[i]).ToObject <UserDTO>();
                    Dbop.Delete(userId);//litedb不起作用
                    Dbop.DeleteHash(userNameArr[i]);
                    ServerContext.CloseAllSourceByClient(int.Parse(userDto.userId));
                }
            }
            catch (Exception ex)
            {
                throw new Exception("删除用户出错:" + ex.Message);
            }
        }
Exemple #20
0
        /// <summary>
        /// 删除操作(根据主键)
        /// </summary>
        /// <param name="pkvalue">主键值</param>
        /// <returns></returns>
        public static KeyValuePair <bool, string> Remove(object pkvalue)
        {
            string sql = SQLDelete <T>(pkvalue);

            return(new KeyValuePair <bool, string>(Dbop.ExecuteSqlSuc(sql), null));
        }
 public bool ValidateUserName(string username)
 {
     return(!Dbop.Exist(username));
 }
Exemple #22
0
        /// <summary>
        /// 存在数据
        /// </summary>
        /// <param name="wh"></param>
        /// <returns></returns>
        public static bool ExistsData(string wh)
        {
            string sql = GetSelectSQL <T>(wh);

            return(Dbop.HavRow(sql));
        }