龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > 软件开发 > C/C++开发 >

简单的用户密码管理系统

时间:2009-12-22 15:42来源:未知 作者:admin 点击:
分享到:
一、功能 提供软件的一般用户治理系统 二、设计思路及程序实现 1.建立的表:以下表在建立时应该先加密码,程序打开时才由程序传递密码。以避免直接用工具可打开DB文件。 ① 用户资

  一、功能

  

提供软件的一般用户治理系统

  

二、设计思路及程序实现

  

1.建立的表:以下表在建立时应该先加密码,程序打开时才由程序传递密码。以避免直接用工具可打开DB文件。

  

  

① 用户资料表

  

用户ID: 用户登录时输入的用户名。

  

用户姓名: 用户的真实姓名。

  

密码: 用户密码(在存入前应该进行必要的加密)

  

权限: 用户级别。

  

有效期开始:该帐号从何时开始有效(下面程序没利用该功能)

  

有效期截止:何时该帐号不能用。

  

是否有效: 可以让该用户暂时为不可用。

  

出错次数: 用户连续输错密码次数(当有正确输入时复位)

  

出错限度: 答应输错密码次数,假如超过该限度,该用户置为不可用,必须找治理员为其复位。

  

备注: 必要的说明。

  

  

② 活动表:

  

用户ID: 记录进入系统的用户ID.

  

活动状态: 该用户是否是当前活动用户。(程序答应A用户进入后,不必 退出系统而让B用户进入,A用户被置为非活动用户,当B退出后A被变为活动用户,只有第一个用户才能退出系统,同时清空活动表)

  

  

2. 进入系统的验证

  

  

① 供用户进入系统的密码输入窗口。

  

  

② 当用户输入完成后,首先打开用户资料表,检查该用户是否存在,若不存在,清空用户输入,提示不存在该用户,让用户从新输入,用户名输入错误这里将不作次数限制。

  

  

③ 若存在该用户,接着验证密码,假如正确,根据用户的使用期限,是否有效作判定,并根据结果作出是否答应用户进入系统。假如不答应,给出相应的提示后关闭系统。否则,根据用户的级别置某些功能不能使用,同时在活动表中记录该用户已进入,并复位出错次数字段。

  

  

④ 假如存在该用户,但密码错误,用户资料表中的出错次数加一。让用户从新输入。

  

  

⑤ 实现部分功能的程序

  

void __fastcall Tpasswdfm::Edit2KeyDown(TObject *Sender, Word &Key,

  

TShiftState Shift)

  

{

  

String userID;

  

bool endflag=0;

  

short cout=0;

  

if(Key==VK_RETURN)

  

{

  

userID=Edit1->Text;

  

Session->AddPassword(123456);

  

  

DM1->PasDTable->Active=true;

  

DM1->PasDTable->FindFirst();

  

  

while((!DM1->PasDTable->Eof) && (!endflag))//找到用户

  

{

  

if(DM1->PasDTable->FieldByName("用户代码")->Value==userID)

  

{ endflag=1;

  

}

  

else {DM1->PasDTable->Next();}

  

}

  

  

if(endflag)//找到了用户

  

{

  

if(DM1->PasDTable->FieldByName("密码")->Value==

  

passwdfm->Edit2->Text)

  

{

  

DM1->PasDTable->Edit();

  

cout=0;

  

DM1->PasDTable->FieldByName("出错次数")->Value=cout;

  

DM1->PasDTable->Post();

  

if(DM1->PasDTable->FieldByName("权限")->Value>1)

  

//根据权限设置不可用菜单

  

{

  

Main->N5->Enabled=false;

  

}

  

else {

  

Main->N5->Enabled=true;

  

}

  

Session->RemovePassword(123456);

  

  

DM1->PasDTable->Close();

  

passwdfm->Close();

  

  

Session->AddPassword(123456);// 用户使用表登记

  

DMPaswd->ActiveTable->Active=true;

  

DMPaswd->ActiveTable->FindFirst();

  

DMPaswd->ActiveTable->Insert();

  

DMPaswd->ActiveTable->FieldByName

  

("用户代码")->Value=userID;

  

DMPaswd->ActiveTable->FieldByName("活动状态")->Value=true;

  

DMPaswd->ActiveTable->Post();

  

Session->RemovePassword(123456);

  

DMPaswd->Acti

  

精彩图集

赞助商链接