明輝手游網(wǎng)中心:是一個(gè)免費(fèi)提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺(tái)!

容易的用戶密碼管理系統(tǒng)

[摘要]一、功能 提供軟件的一般用戶管理系統(tǒng) 二、設(shè)計(jì)思路及程序?qū)崿F(xiàn) 1.建立的表:以下表在建立時(shí)應(yīng)該先加密碼,程序打開(kāi)時(shí)才由程序傳遞密碼。以 避免直接用工具可打開(kāi)DB文件。 ① 用戶資料表 用戶ID: 用戶登錄時(shí)輸入的用戶名。 用戶...
一、功能
    提供軟件的一般用戶管理系統(tǒng)

二、設(shè)計(jì)思路及程序?qū)崿F(xiàn)
    1.建立的表:以下表在建立時(shí)應(yīng)該先加密碼,程序打開(kāi)時(shí)才由程序傳遞密碼。以
避免直接用工具可打開(kāi)DB文件。
  
      ① 用戶資料表
         用戶ID:   用戶登錄時(shí)輸入的用戶名。
         用戶姓名:  用戶的真實(shí)姓名。
         密碼:      用戶密碼(在存入前應(yīng)該進(jìn)行必要的加密)
         權(quán)限:      用戶級(jí)別。
         有效期開(kāi)始:該帳號(hào)從何時(shí)開(kāi)始有效(下面程序沒(méi)利用該功能)
         有效期截止:何時(shí)該帳號(hào)不能用。
         是否有效:  可以讓該用戶暫時(shí)為不可用。
         出錯(cuò)次數(shù):  用戶連續(xù)輸錯(cuò)密碼次數(shù)(當(dāng)有正確輸入時(shí)復(fù)位)
         出錯(cuò)限度:  允許輸錯(cuò)密碼次數(shù),如果超過(guò)該限度,該用戶置為不可用,必須找管理員為其復(fù)位。
         備注:      必要的說(shuō)明。

       ② 活動(dòng)表:
          用戶ID:   記錄進(jìn)入系統(tǒng)的用戶ID.
          活動(dòng)狀態(tài):  該用戶是否是當(dāng)前活動(dòng)用戶。(程序允許A用戶進(jìn)入后,不必
退出系統(tǒng)而讓B用戶進(jìn)入,A用戶被置為非活動(dòng)用戶,當(dāng)B退出后A被變?yōu)榛顒?dòng)用戶,只
有第一個(gè)用戶才能退出系統(tǒng),同時(shí)清空活動(dòng)表)

2. 進(jìn)入系統(tǒng)的驗(yàn)證

    ① 供用戶進(jìn)入系統(tǒng)的密碼輸入窗口。

    ② 當(dāng)用戶輸入完成后,首先打開(kāi)用戶資料表,檢查該用戶是否存在,若不存在,清空用戶輸入,提示不存在該用戶,讓用戶從新輸入,用戶名輸入錯(cuò)誤這里將不作次數(shù)限制。

    ③ 若存在該用戶,接著驗(yàn)證密碼,如果正確,根據(jù)用戶的使用期限,是否有效作判斷,并根據(jù)結(jié)果作出是否允許用戶進(jìn)入系統(tǒng)。如果不允許,給出相應(yīng)的提示后關(guān)閉系統(tǒng)。否則,根據(jù)用戶的級(jí)別置某些功能不能使用,同時(shí)在活動(dòng)表中記錄該用戶已進(jìn)
入,并復(fù)位出錯(cuò)次數(shù)字段。
  
    ④ 如果存在該用戶,但密碼錯(cuò)誤,用戶資料表中的出錯(cuò)次數(shù)加一。讓用戶從新輸入。

    ⑤ 實(shí)現(xiàn)部分功能的程序
    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("出錯(cuò)次數(shù)")->Value=cout;
              DM1->PasDTable->Post();
              if(DM1->PasDTable->FieldByName("權(quán)限")->Value>1)
                 //根據(jù)權(quán)限設(shè)置不可用菜單
                {
                  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("活動(dòng)狀態(tài)")->Value=true;
              DMPaswd->ActiveTable->Post();
              Session->RemovePassword(123456);
              DMPaswd->ActiveTable->Close();
            }
           else{MessageBox(NULL,"密碼出錯(cuò),累積三次將關(guān)閉系統(tǒng)","密碼輸入信息
",MB_OK);
                cout=DM1->PasDTable->FieldByName("出錯(cuò)次數(shù)")->Value;
                cout++;
                DM1->PasDTable->Edit();
                DM1->PasDTable->FieldByName("出錯(cuò)次數(shù)")->Value=cout;
                DM1->PasDTable->Post();

                if(DM1->PasDTable->FieldByName("出錯(cuò)次數(shù)")->Value
                   < DM1->PasDTable->FieldByName("出錯(cuò)限制")->Value)
                  {passwdfm->Edit1->Text="";
                   passwdfm->Edit2->Text="";
                   passwdfm->ActiveControl=Edit1;
                   }
                 else
                 { MessageBox(NULL,"登錄失敗次數(shù)超過(guò)限額,請(qǐng)與管理員聯(lián)系",
                   "密碼輸入信息",MB_OK);
                   Application->Terminate();
                  }
               }
        }
         else//無(wú)該用戶
           {MessageBox(NULL,"無(wú)該用戶","密碼輸入信息",MB_OK);
            passwdfm->Edit1->Text="";
            passwdfm->Edit2->Text="";
            passwdfm->ActiveControl=Edit1;
           }
    }
}

3、密碼修改
    一般用戶只能修改自己的密碼,當(dāng)用戶選擇該功能時(shí),提示用戶輸入一次舊密碼,兩次新密碼。用戶可以按清除鍵重新輸入。當(dāng)用戶輸入完成后,先從活動(dòng)表找出
該用戶ID,再按ID尋找用戶資料表找到該用戶,先比較舊密碼,錯(cuò)誤提示從新修改,正
確則完成修改。

4、超級(jí)用戶可以設(shè)置/修改用戶資料表中的所有資料及密碼初始化。