新聞中心
聯(lián)動實現(xiàn)用戶認證——MFC登錄實戰(zhàn)

隨著互聯(lián)網(wǎng)的普及和發(fā)展,我們的日常生活中離不開各種網(wǎng)絡(luò)應(yīng)用,而登錄則是這些應(yīng)用中必不可少的一個環(huán)節(jié)。而在網(wǎng)絡(luò)應(yīng)用中的安全性則會涉及到用戶的認證問題。在這里,我們將介紹利用MFC進行用戶認證的實踐方法。
MFC是一種Microsoft基于C++的類庫,它可以方便地編寫Windows應(yīng)用程序。而在網(wǎng)絡(luò)應(yīng)用的開發(fā)中,我們可以利用MFC的C++開發(fā)用戶認證模塊。
在用戶認證方面,可以采取單獨開發(fā)的認證系統(tǒng),還可以利用現(xiàn)有的認證系統(tǒng)進行用戶認證。而這時需要在本地上運行一個認證系統(tǒng),這個認證系統(tǒng)就要負責客戶端所有的用戶認證。
如果用戶認證系統(tǒng)采取了一個相對獨立的認證服務(wù),那么客戶端就需要訪問這個認證系統(tǒng)。而在用戶認證系統(tǒng)和客戶端之間進行數(shù)據(jù)傳輸時,就需要利用網(wǎng)絡(luò)傳輸協(xié)議,比如TCP或UDP等協(xié)議來傳輸數(shù)據(jù)。
最常見的網(wǎng)絡(luò)傳輸協(xié)議是HTTP協(xié)議和HTTPS協(xié)議。這兩種協(xié)議都采用了加密機制,但HTTPS協(xié)議比HTTP協(xié)議更加安全,因為HTTPS協(xié)議采用了SSL協(xié)議進行數(shù)據(jù)傳輸。
下面我們將介紹如何利用MFC實現(xiàn)用戶認證模塊:
首先確定客戶端的架構(gòu)??蛻舳丝赡苁且粋€桌面應(yīng)用程序或是一個Web應(yīng)用程序。如果是桌面應(yīng)用程序,則需要通過Windows API或MFC類庫來完成用戶認證邏輯的編寫。
為了避免代碼重復(fù),可以將客戶端的代碼邏輯和服務(wù)器端的代碼邏輯分離,采用SOA(Service Oriented Architecture)的架構(gòu)方式。客戶端只需要提供接口,而服務(wù)器端則負責實現(xiàn)具體的業(yè)務(wù)邏輯。
接著需要確定客戶端和服務(wù)器端之間的通信協(xié)議。常用的通信協(xié)議有TCP和UDP。如果要保證通信的安全性,可以采用SSL/TLS協(xié)議來進行數(shù)據(jù)傳輸。
在MFC中,可以利用WinInet方法和WinSock方法來實現(xiàn)網(wǎng)絡(luò)通信功能。
同時,還需要確定客戶端和服務(wù)器端之間的認證方式。我們可以采用通行的用戶名密碼認證方式,也可以采用更加安全的RSA公鑰認證方式。
在實現(xiàn)RSA公鑰認證時,需要生成一對RSA密鑰,并將公鑰傳輸?shù)娇蛻舳?。客戶端在發(fā)送數(shù)據(jù)時,需要將數(shù)據(jù)進行RSA加密并在傳輸前附加一個時間戳。服務(wù)器端在接收到數(shù)據(jù)后,需要先驗證時間戳的有效性,再通過RSA私鑰解密數(shù)據(jù)。
在實現(xiàn)用戶認證模塊過程中,還需要注意以下幾點:
1.輸入數(shù)據(jù)的合法性校驗,比如密碼的長度限制、特殊字符的過濾等。
2.數(shù)據(jù)傳輸過程的安全性保證,比如利用SSL/TLS協(xié)議對數(shù)據(jù)進行加密傳輸、禁止在網(wǎng)絡(luò)傳輸過程中明文傳輸用戶密碼等。
3.數(shù)據(jù)傳輸過程的可靠性保證,比如采用TCP協(xié)議進行數(shù)據(jù)傳輸,在數(shù)據(jù)傳輸過程中發(fā)生網(wǎng)絡(luò)異常時可以重新連接服務(wù)器。
通過以上步驟的實現(xiàn),我們就可以通過MFC來搭建用戶認證模塊,從而實現(xiàn)聯(lián)動實現(xiàn)用戶認證的目的。
需要提醒的是,在實現(xiàn)用戶認證模塊時,一定要遵循安全原則,從而保證應(yīng)用程序的安全性,保護用戶的隱私信息。
成都網(wǎng)站建設(shè)公司-創(chuàng)新互聯(lián),建站經(jīng)驗豐富以策略為先導(dǎo)10多年以來專注數(shù)字化網(wǎng)站建設(shè),提供企業(yè)網(wǎng)站建設(shè),高端網(wǎng)站設(shè)計,響應(yīng)式網(wǎng)站制作,設(shè)計師量身打造品牌風格,熱線:028-86922220我最近在用MFC編寫學生成績管理系統(tǒng)(對話框程序)。需要在登錄頁面自己成績管理頁面用到數(shù)據(jù)庫??墒?/h3>
使用ADO連接數(shù)據(jù)庫
1、導(dǎo)入存放ADO組模攜敗件隱伏的庫文件旦顫。在stdafx.h文件中加入下列語句:
#import “c:\program Files\Common Files\system\ado\msado15.dll” no_namespace rename(“EOF”,”EndOfFile”) rename(“BOF”,”FirstOfFile”)
#include “icrsint.h”
ADO組件存放在msado15.dll文件中,導(dǎo)入該文件時,要重新定義EOF和BOF,以便與VC中ios.h、stdio.h中的EOF和BOF區(qū)別開來。
icrsint.h文件中包含了ADO控件的聲明。
2、在應(yīng)用程序類的InitInstance函數(shù)中加入:
AfxOleInit(); //初始化COM組件環(huán)境
3、為視圖類增加成員:
_ConnectionPtr m_myConnection; //連接對象
_RecordsetPtr m_myRSStudent; //記錄集
_RecordsetPtr m_myRS1; //記錄集
4、在修改視圖類的OnInitUpdate函數(shù):
HRESULT hr;
try{hr = m_myConnection.CreateInstance(“ADODB.Connection”); //創(chuàng)建連接實例if(SUCCEEDED(hr))hr =
m_myConnection->
Open(“Provider=Microsoft.Jet.OLEDB.4.0;
Data Source=db1.mdb;”, “”, “”,adModeUnknown);
//打開連接,連接到數(shù)據(jù)庫}
catch(_com_error e){
CString errormessage;
errormessage.Format(“Connection failed\nInformation:%s”,e.ErrorMessage());
AfxMessageBox(errormessage);}
m_myRSStudent.CreateInstance(“ADODB.Recordset”);
m_myRSStudent->Open(“select * from student”, //獲取數(shù)據(jù)的SQL語句m_myConnection.GetInterfacePtr(), //記錄集獲取數(shù)據(jù)時使用的連接adOpenDynamic,adLockOptimistic,adCmdText);//動態(tài)集、優(yōu)化鎖、SQL命令形式
執(zhí)行完這段代碼后,數(shù)據(jù)庫表student中的數(shù)據(jù)被提取到m_myRS所管理的內(nèi)存區(qū)域。m_myRS1.CreateInstance(“ADODB.Recordset”);
m_myRS1->Open(“select * from Class”,
m_myConnection.GetInterfacePtr(),
adOpenDynamic,
adLockOptimistic,
adCmdText);
_variant_t vName; //變體數(shù)據(jù)類型,可以存放任意類型的數(shù)據(jù)
while(!m_myRS1->EndOfFile)
{vName = m_myRS1->GetCollect(“ClassName”);//獲取字段內(nèi)容m_TreeView.InsertItem((_bstr_t)vName); //填充TreeView
m_myRS1->MoveNext();}
m_ListView.SetExtendedStyle(LVS_EX_FULLROWSELECT);
m_ListView.InsertColumn(0,”學號”,LVCFMT_CENTER,60);
m_ListView.InsertColumn(1,”姓名”,LVCFMT_CENTER,60);
m_ListView.InsertColumn(2,”數(shù)學”,LVCFMT_CENTER,60);
m_ListView.InsertColumn(3,”英語”,LVCFMT_CENTER,60);
m_ListView.InsertColumn(4,”計算機”,LVCFMT_CENTER,60);}
幾個小時?那你還不如發(fā)貼找人幫你寫,學個鳥
MFC 在用戶界面對數(shù)據(jù)庫的操作
不同的數(shù)據(jù)庫,操作是不一樣的。
如:
MFC中簡單的數(shù)據(jù)庫宏手文件操作(添加,修改,查找,刪凱枝除蔽孫嫌)
完整的VC下SQLite的使用
緊急: 求一段c++MFC登陸界面代碼 ,用文本text支持的
CString name,pass;
GetDlgItem(用戶笑旦數(shù)名ID)->GetWindowText(name);
GetDlgItem(用戶密碰首碼遲簡ID)->GetWindowText(pass);
這個。。。。MFC 基于對話框,一個拖拽完成。
關(guān)于mfc登陸界面代碼與數(shù)據(jù)庫的介紹到此就結(jié)束了,不知道你從中找到你需要的信息了嗎 ?如果你還想了解更多這方面的信息,記得收藏關(guān)注本站。
成都網(wǎng)站建設(shè)選創(chuàng)新互聯(lián)(?:028-86922220),專業(yè)從事成都網(wǎng)站制作設(shè)計,高端小程序APP定制開發(fā),成都網(wǎng)絡(luò)營銷推廣等一站式服務(wù)。
當前文章:聯(lián)動實現(xiàn)用戶認證——mfc登錄實戰(zhàn)(mfc登陸界面代碼與數(shù)據(jù)庫)
分享網(wǎng)址:http://www.dlmjj.cn/article/dhceeij.html


咨詢
建站咨詢
