예제 #1
0
        private void SendCredential(string username, string password)
        {
            ClientLoginCmd loginCmd = new ClientLoginCmd();

            loginCmd.Username = username;
            loginCmd.Password = password;

            connectionMgr.BroadcastMessage((int)CommandConst.MainCommandClient.LoginInfo, (int)CommandConst.SubCommandClient.Credential, loginCmd);
        }
예제 #2
0
        public override void ExecuteCommand(string userId, string command)
        {
            ClientLoginCmd data = deserialize.Deserialize <ClientLoginCmd>(command);

            if (data == null)
            {
                return;
            }

            /*
             * // get the login status matches with database
             * string displayName = string.Empty;
             * int dbUserId = -1;
             * DataTable dataTable = Database.DbHelper.GetInstance().ReadData(new User());
             * foreach (DataRow dataRow in dataTable.Rows)
             * {
             *  string username = dataRow[User.USERNAME].ToString();
             *  string password = dataRow[User.PASSWORD].ToString();
             *
             *  if (username.CompareTo(data.Username) == 0 &&
             *      password.CompareTo(data.Password) == 0)
             *  {
             *      // found matched username and password
             *      dbUserId = int.Parse(dataRow[User.USER_ID].ToString());
             *      displayName = dataRow[User.LABEL].ToString();
             *      break;
             *  }
             * }*/

            List <UserData> userDataList = new List <UserData>(Server.ServerDbHelper.GetInstance().GetAllUsers());
            UserData        userData     = userDataList.Find(user
                                                             =>
                                                             (user.username.CompareTo(data.Username) == 0 &&
                                                              user.password.CompareTo(data.Password) == 0));

            if (userData == null)
            {
                // no matched
                return;
            }

            // notify UI
            ClientInfoModel clientModel = new ClientInfoModel()
            {
                DbUserId     = userData.id,
                SocketUserId = userId,
                Name         = userData.name,
            };

            server.ClientLogin(clientModel);
        }
예제 #3
0
        public override void ExecuteCommand(string userId, string command)
        {
            ClientLoginCmd data = deserialize.Deserialize <ClientLoginCmd>(command);

            if (data == null)
            {
                return;
            }

            // get the login status matches with database
            string    displayName = string.Empty;
            int       dbUserId    = -1;
            DataTable dataTable   = Database.DbHelper.GetInstance().ReadData(new User());

            foreach (DataRow dataRow in dataTable.Rows)
            {
                string username = dataRow[User.USERNAME].ToString();
                string password = dataRow[User.PASSWORD].ToString();

                if (username.CompareTo(data.Username) == 0 &&
                    password.CompareTo(data.Password) == 0)
                {
                    // found matched username and password
                    dbUserId    = int.Parse(dataRow[User.USER_ID].ToString());
                    displayName = dataRow[User.LABEL].ToString();
                    break;
                }
            }

            if (displayName.Length == 0)
            {
                // no match found
                return;
            }

            // get the monitor info from client
            List <MonitorModel> monitorList = new List <MonitorModel>();
            int count = 1;

            foreach (MonitorInfo monitorInfo in data.MonitorsInfo)
            {
                MonitorModel model = new MonitorModel()
                {
                    Label          = String.Format("{0}'s PC: Monitor {1}", displayName, count),
                    WorkAreaLeft   = monitorInfo.LeftPos,
                    WorkAreaTop    = monitorInfo.TopPos,
                    WorkAreaRight  = monitorInfo.RightPos,
                    WorkAreaBottom = monitorInfo.BottomPos,
                };

                count++;

                monitorList.Add(model);
            }
            ;

            // notify UI
            ClientInfoModel clientModel = new ClientInfoModel()
            {
                DbUserId     = dbUserId,
                SocketUserId = userId,
                Name         = displayName,
                VncInfo      = new VncModel()
                {
                    IpAdress = data.VncServerIp, ListeningPort = data.VncServerPort
                },
                MonitorsInfo = monitorList,
            };

            server.ClientLogin(clientModel);
        }