//线程对象
private Thread m_objThread;
//记录登录操作已使用的时间
private int m_nLogonTime=0;
//类的构造函数
public frmLogon(
System.Windows.Forms.StatusBar objStaMDIfrmMain)
{
//
// Windows 窗体设计器支持所必需的
//
InitializeComponent();
 
//系统状态提示控件
m_objStaMDIfrmMain=objStaMDIfrmMain;
//获取最后一次登录用户的ID
txtUserID.Text= clsXml.GetNodeValue(clsSystem.ApplicationPath+"\\"+clsResource.gstrClientConfig,clsResource.gstrLeafLastLogonUserID);
}
private void btnOK_Click(object sender, System.EventArgs e)
{
m_objThread=new Thread(new ThreadStart(this.LogonValidate));
m_objThread.Start();
tmrLogon.Enabled=true;
}
/// <summary>
/// 重新登录
/// </summary>
private void ReLogonValidate()
{
m_objStaMDIfrmMain.Panels[0].Text=" 登录失败...";
tmrLogon.Enabled=false;
txtPassWord.Enabled=true;
txtUserID.Enabled=true;
btnCancel.Enabled=true;
btnOK.Enabled=true;
}
/// <summary>
/// 身份验证
/// </summary>
private void LogonValidate()
{
try
{
this.Cursor =System.Windows.Forms.Cursors.WaitCursor;
m_objLogicAction=new clsLogicAction("");
m_nLogonTime=0;
txtPassWord.Enabled=false;
txtUserID.Enabled=false;
txtUserID.Text=txtUserID.Text.Trim();
btnCancel.Enabled=false;
btnOK.Enabled=false;
if(!File.Exists(clsSystem.ApplicationPath+"\\"+clsResource.gstrWebServiceConfig))
{
this.ReLogonValidate();
MessageBox.Show(
this,"验证失败,原因:"+clsResource.gstrWebServiceConfig+"配置文件不存在!",this.Text,
MessageBoxButtons.OK,
MessageBoxIcon.Information);
return;
}
m_objStaMDIfrmMain.Panels[0].Text=" 正在解密配置信息,请稍候...";
m_objStaMDIfrmMain.Panels[1].Text=" 已用时间: 0 秒";
m_objStaMDIfrmMain.Panels[3].Text=" 登录时间: "+DateTime.Now.ToString("yyyy年MM月dd日 HH:mm:ss");
EMResource.g_strCn=m_objLogicAction.GetServerConfig(clsSystem.ApplicationPath);

EM.IEMDataOpretion.UserOpretion mUser=new EM.IEMDataOpretion.UserOpretion(); m_objStaMDIfrmMain.Panels[0].Text=" 正在进行数据验证,请稍候...";
m_objStaMDIfrmMain.Panels[1].Text=" 已用时间: 0 秒";
m_objStaMDIfrmMain.Panels[3].Text=" 登录时间: "+DateTime.Now.ToString("yyyy年MM月dd日 HH:mm:ss");
if(mUser.GetByUserID(txtUserID.Text,txtPassWord.Text.Trim()))
{
frmMdiMain.g_CurUser=mUser.CurUser;
}
else
{
this.ReLogonValidate();
MessageBox.Show(
this,"登录失败,原因:用户或密码有误!",this.Text,
MessageBoxButtons.OK,
MessageBoxIcon.Information);
return;
}

m_objStaMDIfrmMain.Panels[0].Text=" 正在进行软件验证,请稍候...";
m_objStaMDIfrmMain.Panels[1].Text=" 已用时间: 0 秒";
m_objStaMDIfrmMain.Panels[3].Text=" 登录时间: "+DateTime.Now.ToString("yyyy年MM月dd日 HH:mm:ss");
//m_objLogicAction=new clsLogicAction(EMResource.g_strCn);
// if(!m_objLogicAction.JudgeLicence(clsSystem.ApplicationPath,mUser.CurUser.User_ID))
if(!m_objLogicAction.JudgeLicence(clsSystem.ApplicationPath,mUser.CurUser.User_ID))
{
this.ReLogonValidate();
MessageBox.Show(
this,"软件验证失败,请于系统管理员或软件提供商联系!",this.Text,
MessageBoxButtons.OK,MessageBoxIcon.Information);
return;
}

//在客户端配置信息中记载本次登录的用户登录名
clsXml.SetNodeValue(clsSystem.ApplicationPath+"\\"+clsResource.gstrClientConfig,clsResource.gstrClientInfo,clsResource.gstrLeafLastLogonUserID,txtUserID.Text);
//在客户端配置信息中记载本次登录的时间
clsXml.SetNodeValue(clsSystem.ApplicationPath+"\\"+clsResource.gstrClientConfig,clsResource.gstrClientInfo,clsResource.gstrLeafLastLogonTime,DateTime.Now.ToString("yyyy年MM月dd日 hh:mm:ss"));

//成功登录后需要初始化主菜单项
m_objStaMDIfrmMain.Panels[0].Text=" 正在更新系统的菜单信息,请稍候...";
frmMdiMain objfrmMdiMain=(frmMdiMain)m_objStaMDIfrmMain.Parent;
objfrmMdiMain.Login(); //显示当前系统状态信息
m_objStaMDIfrmMain.Panels[0].Text=" 当前用户:"+frmMdiMain.g_CurUser.User_Name;
if(frmMdiMain.g_CurUser.User_Power==EM.IEMCommon.OperatePower.Administrator)
m_objStaMDIfrmMain.Panels[1].Text=" 当前权限:"+clsResource.gstrOperatePowerAdministrator;
else if(frmMdiMain.g_CurUser.User_Power==EM.IEMCommon.OperatePower.Assistant)
m_objStaMDIfrmMain.Panels[1].Text=" 当前权限:"+clsResource.gstrOperatePowerAssistant;
else if(frmMdiMain.g_CurUser.User_Power==EM.IEMCommon.OperatePower.Director)
m_objStaMDIfrmMain.Panels[1].Text=" 当前权限:"+clsResource.gstrOperatePowerDirector;
else if(frmMdiMain.g_CurUser.User_Power==EM.IEMCommon.OperatePower.President)
m_objStaMDIfrmMain.Panels[1].Text=" 当前权限:"+clsResource.gstrOperatePowerPresident;
else if(frmMdiMain.g_CurUser.User_Power==EM.IEMCommon.OperatePower.Teacher)
m_objStaMDIfrmMain.Panels[1].Text=" 当前权限:"+clsResource.gstrOperatePowerTeacher;
else if(frmMdiMain.g_CurUser.User_Power==EM.IEMCommon.OperatePower.User)
m_objStaMDIfrmMain.Panels[1].Text=" 当前权限:"+clsResource.gstrOperatePowerUser;
tmrLogon.Enabled=false;
}
catch(Exception err)
{
this.ReLogonValidate();
MessageBox.Show(
this,"登录失败,原因:"+err.Message,this.Text,
MessageBoxButtons.OK,
MessageBoxIcon.Information);
}
finally
{
try
{
m_objThread.Abort();
}
catch{}
finally
{
m_objThread=null;
tmrLogon.Enabled=false; 
this.Cursor =System.Windows.Forms.Cursors.Arrow;
if(m_objStaMDIfrmMain.Panels[0].Text.IndexOf("当前用户")!=-1)
this.Close();
}
}
}这是登陆窗口的部分相关代码:二级用户在登陆时会提示软件验证失败,请于系统管理员或软件提供商联系,