Пример #1
0
        /// <summary>
        /// Updates a VNC start parameter for user.
        /// </summary>
        /// <param name="customer">Customer.</param>
        /// <returns>Number of customer records updated.</returns>
        public void UpdateStartParameter(VNCStartParameter startParam)
        {
            StringBuilder sql = new StringBuilder();

            sql.Append(" UPDATE vnc_startparameter ");
            sql.Append("    SET user_name = " + Db.Escape(startParam.UserName) + ", ");
            sql.Append("        email = " + Db.Escape(startParam.EMail) + ", ");
            sql.Append("        host_name = " + Db.Escape(startParam.HostName) + ", ");
            sql.Append("        port_number = " + startParam.PortNumber + ", ");
            sql.Append("        process_id = " + startParam.ProcessID + ", ");
            sql.Append("        session_id = " + startParam.SessionID + ", ");
            sql.Append("        time_stamp = GetDate()");
            sql.Append(" WHERE user_SID = " + Db.Escape(startParam.UserSID));

            try
            {
                Db.Update(sql.ToString());
            }
            catch (Exception e)
            {
                StringBuilder message = new StringBuilder();
                message.AppendLine("Updating data base is not successful");
                message.AppendLine(e.Message);
                Logger.Log.Error(message.ToString());
            }
        }
Пример #2
0
        public void InsertStartParameter(VNCStartParameter startParam)
        {
            StringBuilder sql = new StringBuilder();

            sql.Append(" INSERT INTO vnc_startparameter (user_name, user_SID, email, host_name, port_number, process_id, session_id, time_stamp) ");
            sql.Append("    VALUES( " + Db.Escape(startParam.UserName) + ", ");
            sql.Append("            " + Db.Escape(startParam.UserSID) + ", ");
            sql.Append("            " + Db.Escape(startParam.EMail) + ", ");
            sql.Append("            " + Db.Escape(startParam.HostName) + ", ");
            sql.Append("            " + startParam.PortNumber + ", ");
            sql.Append("            " + startParam.ProcessID + ", ");
            sql.Append("            " + startParam.SessionID + ", ");
            sql.Append("            " + "GetDate())");

            try
            {
                Db.Insert(sql.ToString());
            }
            catch (Exception e)
            {
                StringBuilder message = new StringBuilder();
                message.AppendLine("Inserting into data base is not successful");
                message.AppendLine(e.Message);
                Logger.Log.Error(message.ToString());
            }
        }
Пример #3
0
        static void Main(string[] args)
        {
            StringBuilder message = new StringBuilder();

            // check connection string if it is encrypted
            Db.ProtectConnectionString();

            Logger.Log.Info("Start collecting user data");
            //collecting user informations
            UserData userData = new UserData();

            try
            {
                // starting vnc server
                WinVNCServer winVNCServer = new WinVNCServer(userData.UserSID);

                try
                {
                    //creating container for VNC start parameter
                    VNCStartParameter startParam = new VNCStartParameter();
                    startParam.EMail      = userData.EMail;
                    startParam.UserName   = userData.UserName;
                    startParam.UserSID    = userData.UserSID;
                    startParam.HostName   = winVNCServer.HostName;
                    startParam.PortNumber = winVNCServer.PortNumber;
                    startParam.ProcessID  = winVNCServer.ProcId;
                    startParam.SessionID  = winVNCServer.SessionId;

                    Logger.Log.Info("Start writing vnc start parameter to data base");
                    //writing to DB
                    PersistStartParameter persistStartParameter = new PersistStartParameter(startParam);
                }
                catch (Exception e)
                {
                    message.AppendLine("VNC Start parameter could not be saved to data base. ");
                    message.Append(e.Message);
                    Logger.Log.Error(message.ToString());

                    //cleaning, becouse data could not be saved, vnc server will be killed
                    winVNCServer.Kill();
                }
            }
            catch (Exception e)
            {
                message.AppendLine("VNC Server could not be started. ");
                message.Append(e.Message);
                Logger.Log.Error(message.ToString());
            }
        }
Пример #4
0
        public VNCStartParameter GetVNCStartParameterForUserSID(string userSID)
        {
            StringBuilder sql = new StringBuilder();

            sql.Append(" SELECT * ");
            sql.Append("   FROM vnc_startparameter");
            sql.Append("  WHERE user_SID = " + Db.Escape(userSID));

            DataRow row        = Db.GetDataRow(sql.ToString());
            string  userName   = row["user_name"].ToString();
            string  hostName   = row["host_name"].ToString();
            int     portNumber = (int)row["port_number"];
            int     processID  = (int)row["process_id"];
            int     sessionID  = (int)row["session_id"];

            VNCStartParameter vncStartParameter = new VNCStartParameter();

            vncStartParameter.HostName   = hostName;
            vncStartParameter.PortNumber = portNumber;
            vncStartParameter.ProcessID  = processID;
            vncStartParameter.SessionID  = sessionID;
            return(vncStartParameter);
        }
        /// <summary>
        /// Check if VNC server is already running on the machine
        /// If process with same name found, then it will be killed
        /// </summary>
        private void CheckVNCServerRunning()
        {
            Logger.Log.Info("Check if VNC is running");
            // get start up parameter from db for userSID
            SQLServerDAO startParamDAO = new SQLServerDAO();

            VNCStartParameter vncStartParameterFromDB = startParamDAO.GetVNCStartParameterForUserSID(_userSID);

            Process localProcess = null;

            try
            {
                localProcess = Process.GetProcessById(vncStartParameterFromDB.ProcessID);
            }
            catch (Exception e)
            {
                Logger.Log.Info(e.Message);
            }

            // if the process with same name, exist on the same host, then kill the process
            if (null != localProcess &&
                localProcess.ProcessName.Equals(_fileName) &&
                vncStartParameterFromDB.HostName.Equals(_hostName))
            {
                try
                {
                    Logger.Log.Info("VNC Process exist and will be terminated");
                    Logger.Log.Info("Killing Process ID: " + localProcess.Id.ToString());
                    localProcess.Kill();
                }
                catch (Exception e)
                {
                    Logger.Log.Fatal("Process ID: " + localProcess.Id.ToString() + ", could not be killed");
                    Logger.Log.Fatal(e.Message);
                }
            }
        }
 public PersistStartParameter(VNCStartParameter startParam)
 {
     this._startParam = startParam;
     PersistData();
 }