void Init() { _serverConfig = FTPServerConfigManager.Get(); skinWaterTextBox1.Text = _serverConfig.IP.ToString(); skinWaterTextBox2.Text = _serverConfig.Port.ToString(); if (_serverConfig.Users == null) { _serverConfig.Users = new ConcurrentDictionary <string, FTPUser>(); } if (!_serverConfig.Users.Any()) { _serverConfig.Users.TryAdd("anonymous", new FTPUser("anonymous", "*****@*****.**", "c:\\")); FTPServerConfigManager.Save(); } _ftpServerUsers = SerializeHelper.Deserialize <List <FtpServerUser> >(SerializeHelper.Serialize(_serverConfig.Users.Values)); dataGridView1.DataSource = null; dataGridView1.DataSource = _ftpServerUsers; dataGridView1.AllowUserToAddRows = true; }
/// <summary> /// 修改用户 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void dataGridView1_CellDoubleClick(object sender, DataGridViewCellEventArgs e) { if (e.ColumnIndex >= 0 && e.RowIndex >= 0) { var row = dataGridView1.Rows[e.RowIndex]; var userName = row.Cells[0].Value.ToString(); var oUser = _ftpServerUsers.FirstOrDefault(b => b.UserName == userName); if (oUser == null) { return; } var cf = new CreateUserForm(oUser); if (cf.ShowDialog(this) == DialogResult.OK) { var user = cf.FtpServerUser; _ftpServerUsers.Remove(oUser); _ftpServerUsers.Add(user); FTPServerConfigManager.SetUser(user.UserName, user.Password, user.Root); FTPServerConfigManager.Save(); Init(); } } }
/// <summary> /// 删除用户 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void skinButton2_Click(object sender, EventArgs e) { if (MessageBox.Show("确认要删除用户吗?", "SAEA.FTP Test", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes) { List <string> userNames = new List <string>(); var rows = dataGridView1.SelectedRows; if (rows == null || rows.Count == 0) { var cells = dataGridView1.SelectedCells; if (cells == null && cells.Count == 0) { MessageBox.Show("请选择要删除的用户"); return; } else { foreach (DataGridViewTextBoxCell item in cells) { userNames.Add(dataGridView1.Rows[item.RowIndex].Cells[0].Value.ToString()); } } } foreach (DataGridViewRow item in rows) { userNames.Add(item.Cells[0].Value.ToString()); } if (!userNames.Any()) { MessageBox.Show("请选择要删除的用户"); return; } else { foreach (var userName in userNames) { if (!string.IsNullOrEmpty(userName)) { var user = _ftpServerUsers.FirstOrDefault(b => b.UserName == userName); if (user != null) { _ftpServerUsers.Remove(user); FTPServerConfigManager.DelUser(userName); } } } FTPServerConfigManager.Save(); Init(); } } }
public FTPServer(string ip, ushort port = 21, int bufferSize = 10240) { _serverConfig = FTPServerConfigManager.Get(); _serverConfig.Port = port; _serverConfig.BufferSize = bufferSize; FTPServerConfigManager.Save(); _cmdSocket = new ServerSocket(_serverConfig); _cmdSocket.OnReceived += _serverSocket_OnReceived; }
private void skinButton1_Click(object sender, EventArgs e) { if (skinButton1.Text == "Start") { var ip = skinWaterTextBox1.Text; var portStr = skinWaterTextBox2.Text; if (!IPHelper.IsIP(ip)) { MessageBox.Show("输入的ip有误"); Log("输入的ip有误"); return; } if (!IPHelper.IsPort(portStr, out ushort port)) { MessageBox.Show("输入的ip有误"); Log("输入的ip有误"); return; } _serverConfig.IP = ip; _serverConfig.Port = port; FTPServerConfigManager.Save(); Log("FTPServer正在启动中..."); skinButton1.Text = "Stop"; if (_ftpServer == null) { _ftpServer = new FTPServer(_serverConfig.IP, _serverConfig.Port, _serverConfig.BufferSize); _ftpServer.OnLog += _ftpServer_OnLog; } _ftpServer.Start(); Log("FTPServer已启动"); } else { skinButton1.Text = "Start"; _ftpServer.Stop(); _ftpServer = null; } }
/// <summary> /// 添加用户 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void skinButton3_Click(object sender, EventArgs e) { var cf = new CreateUserForm(); if (cf.ShowDialog(this) == DialogResult.OK) { var user = cf.FtpServerUser; if (FTPServerConfigManager.GetUser(user.UserName) != null) { MessageBox.Show("当前用户已存在!"); return; } _ftpServerUsers.Add(user); FTPServerConfigManager.SetUser(user.UserName, user.Password, user.Root); FTPServerConfigManager.Save(); Init(); } }
/// <summary> /// 断开连接 /// </summary> /// <param name="id"></param> private void _cmdSocket_OnDisconnected(string id) { var userName = FTPServerConfigManager.GetUserBind(id); if (string.IsNullOrEmpty(userName)) { return; } var user = FTPServerConfigManager.GetUser(userName); if (user == null) { return; } user.CurrentFtpPath = user.Root; user.CurrentPath = "/"; user.IsLogin = false; FTPServerConfigManager.RemoveUserBind(id); FTPServerConfigManager.Save(); }