Example #1
0
    protected void Save_Click(object sender, EventArgs e)
    {
        //要编辑更新服务器必须对此页面有写权限
        if (!WebUtil.CheckPrivilege(WebConfig.FunctionUpdateServerEditUpdateServer, OpType.WRITE, Session))
        {
            LabelOpMsg.Text = "编辑服务器失败: " + StringDef.NotEnoughPrivilege;
            LabelOpMsg.Visible = true;
            return;
        }

        try
        {
            serverId = int.Parse(Request.Params["serverId"]);
            server = TheAdminServer.FTPClient.GetFTPServer(serverId);
            server.Address = TextBoxServerIpAddress.Text;
            server.Port = int.Parse(TextBoxServerPort.Text);
            server.UserName = TextBoxServerUserName.Text;
            if ((TextBoxServerPassword.Enabled == true) && (TextBoxServerPassword.Text.Length > 0))
                server.Password = TextBoxServerPassword.Text;
            server.Literal = TextBoxServerComment.Text;
            if (TheAdminServer.FTPClient.EditUpdateServer(server))
            {
                ShowMessage(StringDef.OperationSucceed, MessageType.Success);
                Response.Redirect("UpdateServerConfig.aspx");
            }
            else
            {
                throw new Exception();
            }
        }
        catch (Exception)
        {
            ShowMessage(StringDef.OperationFail, MessageType.Failure);
        }
    }
Example #2
0
    protected void Page_Load(object sender, EventArgs e)
    {
		if (!WebUtil.CheckPrivilege(WebConfig.FunctionUpdateServerUpdateServerState, OpType.READ, Session))
		{
			Response.Redirect(WebConfig.PageNotEnoughPrivilege, true);
		}

        if (Request.Params["serverId"] != null && Request.Params["serverId"].Length != 0)
        {
            _updateServerId = int.Parse(Request.Params["serverId"]);
            server = AdminServer.TheInstance.FTPClient.GetFTPServer(_updateServerId);
        }

        Message.Text = String.Empty;  

        if (!IsPostBack)
        {
            ViewState[ParamPath] = String.Empty;
            ListServerFiles();
            Thread.Sleep(RefreshServerFilesDelayTime);
            GetServerFileList();
        }
   
        ListUploadFiles();
    }
 public void ListFtpByType(FTPServer.FTPServerType type)
 {
     FtpServerList.Items.Clear();
     FtpServerList.Items.Add(new ListItem(StringDef.None, "-1"));
     foreach (FTPServer server in AdminServer.TheInstance.FTPClient.FTPServerList)
     {
         if (server.FtpServerType == type)
         {
             ListItem item = new ListItem("[" + server.ID + "]" + server.Literal, server.ID.ToString());
             FtpServerList.Items.Add(item);
         }
     }
 }
Example #4
0
    protected void Page_Load(object sender, EventArgs e)
    {
        //需要此页面有Read权限
        if (!WebUtil.CheckPrivilege(WebConfig.FunctionUpdateServerEditUpdateServer, OpType.READ, Session))
        {
            Response.Redirect(WebConfig.PageNotEnoughPrivilege, true);
        }

        if (!Page.IsPostBack)
        {
            if (Request.Params["serverId"] != null)
            {
                serverId = int.Parse(Request.Params["serverId"]);
                server = TheAdminServer.FTPClient.GetFTPServer(serverId);
                LabelTitle.Text += " : [" + server.ID + "] " + server.Literal;
            }
            if (!IsPostBack)
            {
                LoadState();
            }
        }

        LabelOpMsg.Visible = false;
    }
Example #5
0
        static private void UploadFile(FileInfo uploadFile, FTPServer ftpServer, int timeOutSeconds)
        {
            string uploadUrl = ftpServer.FTP_URL_PREFIX + "serverlist/" + uploadFile.Name.Replace('#', '_');

            // Get the object used to communicate with the server.
            FtpWebRequest request = (FtpWebRequest)WebRequest.Create(uploadUrl);
            request.Method = WebRequestMethods.Ftp.UploadFile;

            //set the UserName and Password of this request
            request.Credentials = new NetworkCredential(ftpServer.UserName, ftpServer.Password);

            //set Timeout property (in milliseconds)(default is 300000, which is 5 minutes)
            if (timeOutSeconds > 0)    
                request.ReadWriteTimeout = timeOutSeconds * 1000;

            // Copy the contents of the file to the request stream.
            StreamReader sourceStream = new StreamReader(uploadFile.FullName, SystemConfig.Current.DefaultEncoding);
            byte[] fileContents = SystemConfig.Current.DefaultEncoding.GetBytes(sourceStream.ReadToEnd());
            sourceStream.Close();
            request.ContentLength = fileContents.Length;

            Stream requestStream = request.GetRequestStream();
            requestStream.Write(fileContents, 0, fileContents.Length);
            requestStream.Close();

            FtpWebResponse response = (FtpWebResponse)request.GetResponse();
            response.Close();
        }
Example #6
0
 public bool LoadUpdateServer()
 {
     lock (this)
     {
         IBlazeDatabase db = null;
         try
         {
             db = DbFactory.GetDatabase();
             IBlazeTable table = db.GetTable(TableString.UpdateServerTableName);
                                 
             DataSet data = new DataSet();
             table.Get(data);
             DataRowCollection rows = data.Tables[TableString.UpdateServerTableName].Rows;
             foreach (DataRow row in rows)
             {                        
                 int id = (int)row[TableString.UpdateServerFieldId];
                 string address = row[TableString.UpdateServerFieldAddress] as string;
                 int port = (int)row[TableString.UpdateServerFieldPort];
                 string username = row[TableString.UpdateServerFieldUsername] as string;
                 string password = row[TableString.UpdateServerFieldPassword] as string;
                 string literal = row[TableString.UpdateServerFieldLiteral] as string;
                 FTPServer.FTPServerType type = (FTPServer.FTPServerType)Enum.Parse(typeof(FTPServer.FTPServerType), row[TableString.UpdateServerFieldUpdateServerType].ToString());
                 FTPServer server = new FTPServer(id, address, port, username, password, literal, type);
                 server.SecurityObject = AdminServer.TheInstance.SecurityManager.Get(id);
                 _FTPServerList.Add(server);
             }
         }
         catch (Exception)
         {
             return false;
         }
         finally
         {
             if (db != null)
             {
                 db.Close();
             }
         }
     }
     return true;
 }
Example #7
0
        public bool DeleteUpdateServer(FTPServer server)
        {
            IBlazeDatabase db = null;
            try
            {
                db = DbFactory.GetDatabase();
                db.BeginTrans();

                IBlazeTable table = db.GetTable(TableString.UpdateServerTableName);
                DataSet taskData = new DataSet();
                table.Get(taskData);
                DataTable taskTable = taskData.Tables[TableString.UpdateServerTableName];

                foreach (DataRow row in taskTable.Rows)
                {
                    if ((int)row[TableString.UpdateServerFieldId] == server.ID)
                    {
                        row.Delete();
                        break;
                    }
                }
                table.Set(taskTable);

                AdminServer.TheInstance.SecurityManager.Delete(server.ID, db);

                db.CommitTrans();

                this._FTPServerList.Remove(server);

                return true;
            }
            catch (Exception)
            {
                if (db != null)
                    db.RollbackTrans();
            }
            finally
            {
                if (db != null)
                    db.Close();
            }
            return false;

        }
Example #8
0
        public bool EditUpdateServer(FTPServer server)
        {
            IBlazeDatabase db = null;
            try
            {
                db = DbFactory.GetDatabase();
                db.BeginTrans();

                IBlazeTable table = db.GetTable(TableString.UpdateServerTableName);
                DataSet taskData = new DataSet();
                table.Get(taskData);
                DataTable taskTable = taskData.Tables[TableString.UpdateServerTableName];

                foreach (DataRow row in taskTable.Rows)
                {
                    if ((int)row[TableString.UpdateServerFieldId] == server.ID)
                    {
                        row.BeginEdit();
                        row[TableString.UpdateServerFieldAddress] = server.Address;
                        row[TableString.UpdateServerFieldPort] = server.Port;
                        row[TableString.UpdateServerFieldUsername] = server.UserName;
                        row[TableString.UpdateServerFieldPassword] = server.Password;
                        row[TableString.UpdateServerFieldLiteral] = server.Literal;
                        row.EndEdit();
                        break;
                    }
                }
                table.Set(taskTable);
                db.CommitTrans();

                return true;
            }
            catch (Exception)
            {
                if (db != null)
                    db.RollbackTrans();
            }
            finally
            {
                if (db != null)
                    db.Close();
            }
            return false; 
        }
Example #9
0
        public bool AddUpdateServer(FTPServer server)
        {
            IBlazeDatabase db = null;
            try
            {
                db = DbFactory.GetDatabase();
                db.BeginTrans();

                SecurityManager sm = AdminServer.TheInstance.SecurityManager;

                //构造相关安全对象
                string newUpdateServerObjPath = sm.Root.FullName + SecurityManager.ObjectPathDelimiter + SecurityObjectSystem + SecurityManager.ObjectPathDelimiter + SecurityObjectUpdateManagement + SecurityManager.ObjectPathDelimiter
                        + SecurityObjectUpdateServer + SecurityManager.ObjectPathDelimiter + server.Literal;
                FSEyeObject newUpdateServerObj = sm.Get(newUpdateServerObjPath, db);
                sm.Set(newUpdateServerObj);

                AddFatherAce(newUpdateServerObj.Parent, newUpdateServerObj, true);

                //IBlazeTable table = db.GetTable(TableString.UpdateServerTableName);
                //DataSet taskData = new DataSet();
                //table.Get(taskData);
                //DataTable taskTable = taskData.Tables[TableString.UpdateServerTableName];

                //DataRow addRow = taskTable.Rows.Add(newUpdateServerObj.Id,
                //                                    server.Address,
                //                                    server.Port,
                //                                    server.UserName,
                //                                    server.Password,
                //                                    server.Literal);
                //table.Set(taskTable);

                //插入数据到服务器表
                string[] fields = new string[] { 
                    TableString.UpdateServerFieldId,
                    TableString.UpdateServerFieldAddress,
                    TableString.UpdateServerFieldPort,
                    TableString.UpdateServerFieldUsername,
                    TableString.UpdateServerFieldPassword,
                    TableString.UpdateServerFieldLiteral,
                    TableString.UpdateServerFieldUpdateServerType
                };
                object[] values = new object[] {
                    newUpdateServerObj.Id,
                    server.Address, 
                    server.Port,
                    server.UserName,
                    server.Password,
                    server.Literal,
                    (Int16)server.FtpServerType
                };

                IBlazeTable serverTable = db.GetTable(TableString.UpdateServerTableName);
                serverTable.Add(fields, values);

                db.CommitTrans();

                server.SecurityObject = newUpdateServerObj;
                this._FTPServerList.Add(server);

                return true;
            }
            catch (Exception ex)
            {
                Util.DebugLog(ex.ToString());

                if (db != null)
                    db.RollbackTrans();
            }
            finally
            {
                if (db != null)
                    db.Close();
            }
            return false;            
        }
Example #10
0
    protected void ButtonUpFolder_Click(object sender, EventArgs e)
    {
        LabelOpMsg.Text = "";
        string txtFolder = txtHiddenFolderName.Text.Trim();
        if (txtFolder.Length > 0)
        {
            LabelOpMsg.Text = StringDef.Waiting;
            if (txtFolder.EndsWith("/"))
            {
                //最后是目录
                txtFolder = txtFolder.Substring(0, txtFolder.Length - 1);
            }
            else
            {
                //最后是文件
                txtFolder = txtFolder.Substring(0, txtFolder.LastIndexOf("/"));
            }
                
            txtHiddenFolderName.Text = txtFolder.Substring(0, txtFolder.LastIndexOf("/") == -1 ? 0 : txtFolder.LastIndexOf("/") + 1);
            ViewState["timeout"] = 10;

            ftpServer = AdminServer.TheInstance.FTPClient.GetFTPServer(int.Parse(DropDownListFTPServer.SelectedValue));
            ftpServer.ListFile(txtHiddenFolderName.Text);
            Timer1.Enabled = true;
            //ListServerFiles();
        }
    }
Example #11
0
 protected void ButtonRefresh_Click(object sender, EventArgs e)
 {
     //这是原来的显示方式
     ////LabelOpMsg.Text = StringDef.Waiting;
     //////TextBoxRefresh.Text = 0; //表示点了一次刷新按钮
     ////ViewState["timeout"] = 10;
     ////ViewState["serverId"] = DropDownListFTPServer.SelectedValue;
     
     ////Timer1.Enabled = true;
     //////ListServerFiles(); 
     LabelOpMsg.Text = StringDef.Waiting;
     if (DropDownListFTPServer.SelectedValue != "")
     {
         ftpServer = AdminServer.TheInstance.FTPClient.GetFTPServer(int.Parse(DropDownListFTPServer.SelectedValue));
         string folder = txtHiddenFolderName.Text.Trim();
         if (folder.EndsWith(@"/")==false && folder.Length > 0 )
         {
             folder = folder.Substring(0, folder.LastIndexOf("/") + 1);
             txtHiddenFolderName.Text = folder;
         }
         ftpServer.ServerFiles.Clear();
         ftpServer.Result = "";
         ftpServer.ListFile(folder);
         ListServerFiles();
         Timer1.Enabled = true;
     }
 }
Example #12
0
    protected void Timer1_Tick1(object sender, EventArgs e)
    {        
        int iNum = 0;
        if (ViewState["timeout"] != null)
            iNum = int.Parse(ViewState["timeout"].ToString());
        if (iNum == 0)
        {
            Timer1.Enabled = false;
            LabelOpMsg.Text = StringDef.QueryTimeOut;
        }
        else
        {            
            //if ((iNum % 5) == 0 && LabelOpMsg.Text != "ok")
            //    ftpServer.ListFile(txtHiddenFolderName.Text.Trim());
            ViewState["timeout"] = int.Parse(ViewState["timeout"].ToString()) - 1;
        }   

        ftpServer = AdminServer.TheInstance.FTPClient.GetFTPServer(int.Parse(DropDownListFTPServer.SelectedValue));
        ftpServer.ListFile(txtHiddenFolderName.Text.Trim());
        ListServerFiles();
    }
Example #13
0
    protected void Add_Click(object sender, EventArgs e)
    {
        //添加更新服务器需要在此页面上有Write的权限
        if (!WebUtil.CheckPrivilege(WebConfig.FunctionUpdateServerAddUpdateServer, OpType.WRITE, Session))
        {
            LabelOpMsg.Text = "删除服务器失败: " + StringDef.NotEnoughPrivilege;
            LabelOpMsg.Visible = true;
            return;
        }
        try
        {
            FTPServer server = new FTPServer(TextBoxServerIpAddress.Text,
                                             int.Parse(TextBoxServerPort.Text),
                                             TextBoxServerUserName.Text,
                                             TextBoxServerPassword.Text,
                                             TextBoxServerComment.Text,
                                             (FTPServer.FTPServerType)Enum.Parse(typeof(FTPServer.FTPServerType), UpdateServerTypeDropDownList.SelectedValue));
            if (TheAdminServer.FTPClient.AddUpdateServer(server))
            {
                ShowMessage(StringDef.OperationSucceed, MessageType.Success);
                Response.Redirect("UpdateServerConfig.aspx");
            }
            else
            {
                throw new Exception();
            }
        }
        catch (FormatException)
        {
            ShowMessage(StringDef.OperationFail+StringDef.Colon, MessageType.Failure);
        }
        catch (Exception)
        {
            ShowMessage(StringDef.OperationFail, MessageType.Failure);
        }

    }