先建一个对话框,在数据库建一表!
// LoginDlg.cpp : implementation file
//#include "stdafx.h"
#include "BankOperation.h"
#include "LoginDlg.h"
#include "BankLoginSet.h"// CLoginDlg dialogIMPLEMENT_DYNAMIC(CLoginDlg, CDialog)
CLoginDlg::CLoginDlg(CWnd* pParent /*=NULL*/)
: CDialog(CLoginDlg::IDD, pParent)
{
}CLoginDlg::~CLoginDlg()
{
}void CLoginDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
}BEGIN_MESSAGE_MAP(CLoginDlg, CDialog)
ON_BN_CLICKED(IDOK, OnBnClickedOk)
ON_BN_CLICKED(IDCANCEL, OnBnClickedCancel)
END_MESSAGE_MAP()// CLoginDlg message handlersvoid CLoginDlg::OnBnClickedOk()
{
// TODO: Add your control notification handler code here
CString strLoginID, strPassword;
CWnd* pWnd = GetDlgItem(IDC_LOGIN);
pWnd->GetWindowText(strLoginID);
GetDlgItem(IDC_PASSWORD)->GetWindowText(strPassword); CBankLoginSet *m_pGet=new CBankLoginSet;
if(!m_pGet->IsOpen ())
m_pGet->Open();
if(!m_pGet->IsBOF() && m_pGet->IsEOF())
m_pGet->MoveFirst(); CString strTemp1, strTemp2;
while(!m_pGet->IsEOF())
{
strTemp1 = m_pGet->m_UserNm;
strTemp2 = m_pGet->m_Pwd;
if ( (strLoginID.CompareNoCase(strTemp1) == 0) && (strPassword.Compare(strTemp2) == 0) )
{
//Success
((CBankOperationApp*)AfxGetApp())->bLoginCorrect = TRUE;
}
else
{
//Failure
((CBankOperationApp*)AfxGetApp())->bLoginCorrect = FALSE;
} m_pGet->MoveNext();
} CDialog::OnOK();
}void CLoginDlg::OnBnClickedCancel()
{
// TODO: Add your control notification handler code here
((CBankOperationApp*)AfxGetApp())->bCancelPressed = TRUE;
CDialog::OnCancel();
}BOOL CLoginDlg::OnInitDialog()
{
//GetDlgItem(IDC_LOGIN)->SetWindowText("S103");
//GetDlgItem(IDC_PASSWORD)->SetWindowText("password"); GetDlgItem(IDC_LOGIN)->SetFocus();
return FALSE;
}
// LoginDlg.cpp : implementation file
//#include "stdafx.h"
#include "BankOperation.h"
#include "LoginDlg.h"
#include "BankLoginSet.h"// CLoginDlg dialogIMPLEMENT_DYNAMIC(CLoginDlg, CDialog)
CLoginDlg::CLoginDlg(CWnd* pParent /*=NULL*/)
: CDialog(CLoginDlg::IDD, pParent)
{
}CLoginDlg::~CLoginDlg()
{
}void CLoginDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
}BEGIN_MESSAGE_MAP(CLoginDlg, CDialog)
ON_BN_CLICKED(IDOK, OnBnClickedOk)
ON_BN_CLICKED(IDCANCEL, OnBnClickedCancel)
END_MESSAGE_MAP()// CLoginDlg message handlersvoid CLoginDlg::OnBnClickedOk()
{
// TODO: Add your control notification handler code here
CString strLoginID, strPassword;
CWnd* pWnd = GetDlgItem(IDC_LOGIN);
pWnd->GetWindowText(strLoginID);
GetDlgItem(IDC_PASSWORD)->GetWindowText(strPassword); CBankLoginSet *m_pGet=new CBankLoginSet;
if(!m_pGet->IsOpen ())
m_pGet->Open();
if(!m_pGet->IsBOF() && m_pGet->IsEOF())
m_pGet->MoveFirst(); CString strTemp1, strTemp2;
while(!m_pGet->IsEOF())
{
strTemp1 = m_pGet->m_UserNm;
strTemp2 = m_pGet->m_Pwd;
if ( (strLoginID.CompareNoCase(strTemp1) == 0) && (strPassword.Compare(strTemp2) == 0) )
{
//Success
((CBankOperationApp*)AfxGetApp())->bLoginCorrect = TRUE;
}
else
{
//Failure
((CBankOperationApp*)AfxGetApp())->bLoginCorrect = FALSE;
} m_pGet->MoveNext();
} CDialog::OnOK();
}void CLoginDlg::OnBnClickedCancel()
{
// TODO: Add your control notification handler code here
((CBankOperationApp*)AfxGetApp())->bCancelPressed = TRUE;
CDialog::OnCancel();
}BOOL CLoginDlg::OnInitDialog()
{
//GetDlgItem(IDC_LOGIN)->SetWindowText("S103");
//GetDlgItem(IDC_PASSWORD)->SetWindowText("password"); GetDlgItem(IDC_LOGIN)->SetFocus();
return FALSE;
}
解决方案 »
- 关于wpf中treeview的右击事件
- datagridview怎么自动刷选当前行?
- ASCII字母对应的数字用什么方法可以返回字母?
- C#的自定义控件调用parent的函数问题
- System.Net.HttpWebRequest的Bug? 下载几万个网页後不能下载了
- kongjiankaifa
- 储存过程问题!! 莫名其妙的问题?高手看看。 50分解决,谢谢帮助!!
- 对路径的访问被拒绝
- WINFORM如何调用Media.PlayTo,如图
- 如何不用向导手工生成水晶报表?在线……
- 多线程问题?请各位高手帮忙!
- 有谁用过微软提供的专门操作Oracle的类(System.Data.OracleClient),发现一个问题,气死我了:(
呵呆,开个玩笑~~~
c++,我不通一窍。
这样实现统一登录是可以,但是一次登录,多点有效还是不行TO:cwbboy(好想失恋)
在网上能够查到CSDN2002合订本里的这篇文章吗?哎,下载了Passport的SDK,还是看不出它是什么原理
你说的"参照Kerberos做法,服务端设一个票据许可服务器(TGS),一个鉴别服务器(AS)"
这种方法我很感兴趣,不知是否可以讲得更详细点呢?
我的联系方式:MSN:[email protected]