程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C >> C語言基礎知識 >> 簡單的用戶密碼管理系統

簡單的用戶密碼管理系統

編輯:C語言基礎知識

  一、功能
     提供軟件的一般用戶治理系統
   二、設計思路及程序實現
       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
 
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved