⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 logondlg.cpp

📁 我上载了那么多怎么都说已经有上载的啦
💻 CPP
字号:
// LogonDlg.cpp : implementation file
//

#include "stdafx.h"
#include "gpmis.h"
#include "LogonDlg.h"
#include "teacher.h"
#include "global.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

extern CGPMISApp theApp;

/////////////////////////////////////////////////////////////////////////////
// CLogonDlg dialog


CLogonDlg::CLogonDlg(CWnd* pParent, BOOL bReplace)
	: CDialog(CLogonDlg::IDD, pParent)
{
	m_bReplace = bReplace;
	//{{AFX_DATA_INIT(CLogonDlg)
	m_strOperator = _T("");
	m_strPassword = _T("");
	//}}AFX_DATA_INIT
	m_bAdmin = FALSE ;
}


void CLogonDlg::DoDataExchange(CDataExchange* pDX)
{
	CDialog::DoDataExchange(pDX);
	//{{AFX_DATA_MAP(CLogonDlg)
	DDX_Control(pDX, IDC_COMBO_OPERATOR, m_cboOperator);
	DDX_Text(pDX, IDC_PASSWORD, m_strPassword);
	DDV_MaxChars(pDX, m_strPassword, 12);
	//}}AFX_DATA_MAP
}


BEGIN_MESSAGE_MAP(CLogonDlg, CDialog)
	//{{AFX_MSG_MAP(CLogonDlg)
	//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CLogonDlg message handlers

BOOL CLogonDlg::OnInitDialog() 
{
	CDialog::OnInitDialog();
	
	// TODO: Add extra initialization here
	HICON hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
	SetIcon(hIcon, TRUE);	// Set big icon
	SetIcon(hIcon, FALSE);// Set small icon

	m_cboOperator.AddString("administrator");
	CTeacherList& teacherList = CGlobal::GetInstance().m_teacherList;
	POSITION pos = teacherList.GetHeadPosition();
	while( pos )
	{
		CTeacher* pTeacher = teacherList.GetNext(pos);
		if( pTeacher )
		{
			m_cboOperator.AddString(pTeacher->GetName());
		}
	}
	
	theApp.GetRegistryValue("Parameters\\Last","Login",m_strOperator,"administrator");
	int nIndex = m_cboOperator.FindString(0, m_strOperator);
	if( nIndex < 0 )
		nIndex = 0;
	m_cboOperator.SetCurSel(nIndex);
	UpdateData(false);

	return TRUE;  // return TRUE unless you set the focus to a control
	              // EXCEPTION: OCX Property Pages should return FALSE
}

void CLogonDlg::OnOK() 
{
	// TODO: Add extra validation here
	UpdateData();

	_RecordsetPtr  pOperatorSet;
	_variant_t	   vConn;	
	_variant_t	   vtOperator, vtPassword, vtAdmin;
	CString		   strOperator, strPassword, strSQL;
	BOOL		   bSuccess = true;

	m_cboOperator.GetLBText(m_cboOperator.GetCurSel(),m_strOperator);
	UpdateData(false);

	if( m_strOperator == "Administrator" ||  m_strOperator == "administrator" )
	{
		theApp.GetRegistryValue("Parameters\\Administrator","Password",strPassword,"");
		m_strSecret = strPassword;
		if( strPassword == "" )
		{

			bSuccess = false;
		}			
		else
		{

			BYTE *pData;
			CBlowfish* pBlowfish = theApp.GetBlowfish();
			pData = new BYTE[17];
			for(int i=0; i<16 ; i++)
			{
				CString strChr;
				strChr = strPassword.Mid(3*i,3);
				pData[i] = atoi(strChr);
			}

			pBlowfish->Decrypt(pData, 16);
			strPassword.Format("%s",pData);
			if( m_strPassword != strPassword )
				bSuccess = false;
			else
			{
				if( m_strPassword == "" )
				{
					MessageBox("欢迎您使用本软件!为了安全起见,\n建议您进入设置功能,修改默认管\n理员的密码。\n","提示",MB_OK|MB_ICONINFORMATION);
				}
			}
		}
		m_bAdmin = TRUE ;
	}
	else
	{
		bSuccess = CTeacher::Validate(m_strOperator,m_strPassword);
	}

	if( !bSuccess )
	{
		if( !m_bReplace )
			MessageBox("用户或密码错误!","登录失败",MB_OK|MB_ICONSTOP);
		else
			MessageBox("更换用户失败。","更换用户",MB_OK|MB_ICONINFORMATION);
		CDialog::OnCancel();
		return;
	}
	else
		theApp.WriteRegistryValue("Parameters\\Last","Login",m_strOperator);

	if( m_strOperator == "曾凡锋" )
		m_bAdmin = TRUE ;

	CDialog::OnOK();
}

void CLogonDlg::OnCancel() 
{
	// TODO: Add extra cleanup here
	
	CDialog::OnCancel();
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -