using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using LYFZ.OtherExpansion.SkinControl; namespace LYFZ.ERPCloudClient { public partial class frmLogin : LYFZ.ComponentLibrary.BaseForm360 { public frmLogin() { InitializeComponent(); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None; this.stxtPwd.BaseText.PasswordChar = '*'; this.stxtPwd.BaseText.UseSystemPasswordChar = true; this.spalHead.BackgroundImage = LYFZ.ComponentLibrary.Properties.UIBlueResources.LYFZHD; this.btnAppFormMenu.Click += btnAppFormMenu_Click; this.stxtPwd.KeyUp += stxtPwd_KeyUp; this.textBoxPwd.KeyUp += textBoxPwd_KeyUp; this.stxtUserName.KeyUp += stxtUserName_KeyUp; this.textBoxPwd.GotFocus += textBoxPwd_GotFocus; this.sMenuStripId.KeyUp += sMenuStripId_KeyUp; } void sMenuStripId_KeyUp(object sender, KeyEventArgs e) { if (e.KeyCode == Keys.Delete) { if (CurrentToolStripMenuItem != null) { try { string[] userInfos = (string[])CurrentToolStripMenuItem.Tag; if (frmMain.ClientCon.HistoryUserList.Any(s => s.UserID.ToLower() == userInfos[0].ToLower())) { frmMain.ClientCon.HistoryUserList.Remove(frmMain.ClientCon.HistoryUserList.Find(s => s.UserID.ToLower() == userInfos[0].ToLower())); } this.sMenuStripId.Items.Remove(CurrentToolStripMenuItem); this.sMenuStripId.Items.RemoveByKey(CurrentToolStripMenuItem.Name + "SP"); LYFZ.CloudServerData.SystemConfig.WriteCloudClientConfig(frmMain.ClientCon); } catch { } } } } /// /// /// /// /// protected void sBtnLogin_Click(object sender, EventArgs e) { isEnterBtnLogin = true; string userAccount = stxtUserName.Text.Trim(); string userPwd = textBoxPwd.Text.Trim(); if (userAccount.Trim() == "") { MessageBoxCustom.Show("用户名不能为空"); this.stxtUserName.Focus(); return; } else if (userPwd.Trim() == "") { MessageBoxCustom.Show("密码不能为空"); this.textBoxPwd.Focus(); return; } frmMain.LoginUser.UserID = userAccount; frmMain.LoginUser.Password = userPwd; ConnectServer(); } /// /// 连接服务器 /// void ConnectServer() { bool isSuccessfulLogin = false; string msg = ""; LYFZ.ComponentLibrary.FrmLoadHandling.LoadDoWorkMethod(delegate(object obj, BackgroundWorker backgroundWorker) { try { backgroundWorker.ReportProgress(0, "正在连接服务器..."); if (!frmMain.TcpClient.ConnectionServer(frmMain.ClientCon.ServerIP, frmMain.ClientCon.Port)) { msg = "连接服务器失败,请检查网络环境"; return; } else { try { backgroundWorker.ReportProgress(0, "正在验证用户登录信息..."); if (VerifyUser(ref msg)) { backgroundWorker.ReportProgress(0, "验证用户登录信息成功..."); } else { backgroundWorker.ReportProgress(0, "验证用户登录信息失败..."); return; } } catch (Exception ex) { msg = "验证用户时出错:" + ex.Message; return; } isSuccessfulLogin = true; } } catch (Exception ex) { msg = "连接服务器失败,请检查网络或确认服务器已启动!\r\n" + ex.Message; return; } }); if (isSuccessfulLogin) { this.DialogResult = System.Windows.Forms.DialogResult.OK; } else { if (msg.Trim().Length > 0) { MessageBoxCustom.Show(msg); } return; } } /// /// 验证用户 /// /// bool VerifyUser(ref string msg) { bool bl = false; string userAccount =this.stxtUserName.Text.Trim(); string userPwd = this.textBoxPwd.Text.Trim(); try { //查询用户 HPSocketCS.Extended.ReturnData returnData = LYFZ.CloudServerData.ClientDataRequestProcess.RequestQueryUser(frmMain.TcpClient.Client, userAccount); if (returnData.ReturnStatus) { frmMain.LoginUser =returnData.DataByteToModelObject(); } else { MessageBoxCustom.Show(returnData.ReturnMessage); } //usersModel.UserName = "管理员"; //usersModel.Password = LYFZ.WinAPI.SDKSecurity.MD5Encrypt("123"); //usersModel.UserID = userAccount; ////usersModel = null; //frmMain.LoginUser = usersModel; } catch (Exception ex) { msg = "获取用户信息出错:" + ex.Message; return false; } try { if (frmMain.LoginUser.ID > 0) { if (LYFZ.WinAPI.SDKSecurity.MD5Encrypt(userPwd).ToLower().Equals(frmMain.LoginUser.Password.Trim().ToLower())) { try { UpdateHistoryUsers(); } catch { } bl = true; } else { msg = "用户名和密码不正确!"; } } else { msg = "用户名不存在"; } } catch (Exception ex) { msg = "用户验证时失败:" + ex.Message; } return bl; } /// /// 更新历史用户 /// void UpdateHistoryUsers() { // LYFZ.WinAPI.SDKSecurity.Decode(); string userPwd = textBoxPwd.Text.Trim(); LYFZ.CloudServerData.Model.HistoryUser tempUser = null; if (frmMain.ClientCon.HistoryUserList.Any(s => s.UserID.ToLower() == frmMain.LoginUser.UserID.ToLower())) { tempUser = frmMain.ClientCon.HistoryUserList.Find(s => s.UserID.ToLower() == frmMain.LoginUser.UserID.ToLower()); frmMain.ClientCon.HistoryUserList.Remove(tempUser); } else { tempUser = new CloudServerData.Model.HistoryUser(); } tempUser.UserID = frmMain.LoginUser.UserID; tempUser.UserName = frmMain.LoginUser.UserName; tempUser.Sex = frmMain.LoginUser.Sex; if (this.schbRememberPwd.Checked) { tempUser.Password = LYFZ.WinAPI.SDKSecurity.Encode(userPwd); } else { tempUser.Password = ""; } frmMain.ClientCon.HistoryUserList.Insert(0,tempUser); LYFZ.CloudServerData.SystemConfig.WriteCloudClientConfig(frmMain.ClientCon); } void btnAppFormMenu_Click(object sender, EventArgs e) { frmLoginSettings loginSet = new frmLoginSettings(); loginSet.ClientCon = frmMain.ClientCon; loginSet.ShowDialog(); } /// /// /// /// /// protected void stxtPwd_IconClick(object sender, EventArgs e) { PassKey pass = new PassKey(this.Left + stxtPwd.Left - 100, this.Top + stxtPwd.Bottom, this.textBoxPwd); pass.Show(this); } protected void sMenuStripId_Closing(object sender, ToolStripDropDownClosingEventArgs e) { this.stxtUserName.Icon = LYFZ.ERPCloudClient.Properties.Resources.login_inputbtn_normal; } protected void stxtUserName_IconClick(object sender, EventArgs e) { if (this.sMenuStripId.Items.Count > 0) { stxtUserName.Icon = LYFZ.ERPCloudClient.Properties.Resources.login_inputbtn_down; } this.sMenuStripId.Show(this.stxtUserName, 1, this.stxtUserName.Height + 1); } protected void frmLogin_Load(object sender, EventArgs e) { this.slblMsgInfo.Text = this.slblMsgInfo.Text.Replace("{$}","V"+Application.ProductVersion); this.stxtPwd.BaseText.PasswordChar = '*'; this.stxtPwd.BaseText.UseSystemPasswordChar = true; this.sMenuStripId.Items.Clear(); for (int i = 0; i < frmMain.ClientCon.HistoryUserList.Count; i++) { LYFZ.CloudServerData.Model.HistoryUser tempUser = frmMain.ClientCon.HistoryUserList[i]; try { if (this.sMenuStripId.Height < 220) { this.sMenuStripId.Height += (i + 1) * 48; } string UserAccount = tempUser.UserID; string nickName = tempUser.UserName; Image nickImage = LYFZ.ComponentLibrary.Properties.UIBlueResources.LYFZHD; string password = tempUser.Password; ToolStripMenuItem item = new ToolStripMenuItem(); item.Name = "mi" + UserAccount; item.AutoSize = false; item.Size = new System.Drawing.Size(182, 40); item.Text = nickName + "\r\n" + UserAccount; item.Tag = new string[] { UserAccount, nickName, password }; //Tag用于存储UserID 和 NickName item.Image = nickImage; //根据ID获取头像 item.Click += new EventHandler(toolStripMenuItemID_Click); item.MouseEnter += item_MouseEnter; ToolStripSeparator spItem = new ToolStripSeparator(); spItem.Name = item.Name + "SP"; this.sMenuStripId.Items.Add(item); this.sMenuStripId.Items.Add(spItem); } catch { } } this.stxtUserName.Focus(); if (this.sMenuStripId.Items.Count > 0) { toolStripMenuItemID_Click(this.sMenuStripId.Items[0], null); } } void textBoxPwd_KeyUp(object sender, KeyEventArgs e) { try { if (e != null && e.KeyCode == Keys.Enter && !isEnterBtnLogin) { this.sBtnLogin_Click(null, null); } else { isEnterBtnLogin = false; } } catch { } } void stxtPwd_KeyUp(object sender, KeyEventArgs e) { this.textBoxPwd_KeyUp(sender, e); } /// /// 当前历史用户项 /// ToolStripMenuItem CurrentToolStripMenuItem = null; void item_MouseEnter(object sender, EventArgs e) { if (sender.GetType() == typeof(ToolStripMenuItem)) { CurrentToolStripMenuItem = (ToolStripMenuItem)sender; } } #region toolStripMenuItemID_Click void textBoxPwd_GotFocus(object sender, EventArgs e) { stxtUserName_KeyUp(null, null); } /// /// 是否按过回车并尝试登录过 /// bool isEnterBtnLogin = false; void stxtUserName_KeyUp(object sender, KeyEventArgs e) { try { if (e != null && e.KeyCode == Keys.Enter && !isEnterBtnLogin) { if (e.KeyCode == Keys.Enter) { this.sBtnLogin_Click(null, null); } } else { this.spalHead.BackgroundImage = LYFZ.ComponentLibrary.Properties.UIBlueResources.LYFZHD; if (sender != null) { isEnterBtnLogin = false; this.schbRememberPwd.Checked = false; this.textBoxPwd.Text = ""; foreach (LYFZ.CloudServerData.Model.HistoryUser user in frmMain.ClientCon.HistoryUserList) { try { string UserAccount = user.UserID; if (this.stxtUserName.Text.Trim().ToLower() == UserAccount.Trim().ToLower()) { this.textBoxPwd.Text = LYFZ.WinAPI.SDKSecurity.Decode(user.Password).Trim(); if (this.textBoxPwd.Text.Trim().Length > 0) { this.schbRememberPwd.Checked = true; } } } catch { } } } } } catch { } } //从帐号下拉列表中 选中某个登录帐号 protected void toolStripMenuItemID_Click(object sender, EventArgs e) { ToolStripMenuItem item = (ToolStripMenuItem)sender; string[] tag = (string[])item.Tag; this.stxtUserName.Text = tag[0]; this.schbRememberPwd.Checked = false; this.textBoxPwd.Text = ""; if (tag.Length == 3) { if (tag[2].Trim() != "") { this.textBoxPwd.Text = LYFZ.WinAPI.SDKSecurity.Decode(tag[2]); this.schbRememberPwd.Checked = true; } } this.spalHead.BackgroundImage = item.Image; this.textBoxPwd.Focus(); } #endregion } }