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
}
}