C#實現(xiàn)密碼驗證與輸錯密碼賬戶鎖定_第1頁
C#實現(xiàn)密碼驗證與輸錯密碼賬戶鎖定_第2頁
C#實現(xiàn)密碼驗證與輸錯密碼賬戶鎖定_第3頁
C#實現(xiàn)密碼驗證與輸錯密碼賬戶鎖定_第4頁
C#實現(xiàn)密碼驗證與輸錯密碼賬戶鎖定_第5頁
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

第C#實現(xiàn)密碼驗證與輸錯密碼賬戶鎖定C#實現(xiàn)的CheckPassword,并根據(jù)輸錯密碼的次數(shù)分情況鎖定賬戶:如果輸入錯誤3次,登錄賬戶鎖定5分鐘并提示X點X分后重試登錄。如果5分鐘后再次輸入,累計輸入錯誤密碼累計達到5次。則賬戶會被永久鎖定,需聯(lián)系系統(tǒng)管理員進行把數(shù)據(jù)庫中的輸入錯誤的次數(shù)(errorcount)進行清零解鎖才能登陸。實現(xiàn)代碼如下:

publicclassUserInfo1

publicstringError_count{get;set;}

publicstringError_time{get;set;}

}

publicExecutionResultCheckAccountPwd(stringaccount,stringpassword)

ExecutionResultexecRes;

execRes=newExecutionResult();

string[]strs=account.Split(newstring[]{"\\"},StringSplitOptions.RemoveEmptyEntries);

if(strs.Length2)

execRes.Status=false;

execRes.Message="無效的賬號。";

else

UserInfo1info1=null;

execRes=CallEEPMethod.Execute(dbName,"sDEM2131","GetUserInfo",strs[1].ToLower());

if(execRes.StatusexecRes.Anything!=null)

info1=JsonConvert.DeserializeObjectUserInfo1(execRes.Anything.ToString());

if(info1!=null)

interrcount=Convert.ToInt32(info1.Error_count);

DateTimeerrtime=Convert.ToDateTime(info1.Error_time);

if(errcount!=5)

//interrorCount

DateTimedt0=DateTime.Now;

DateTimedt1=errtime.AddMinutes(5);

doubles=(dt1-dt0).TotalSeconds;

if(errcount==3s0)

execRes.Status=false;

execRes.Message="密碼連續(xù)輸入錯誤3次,請于"+errtime.AddMinutes(+5).ToString("yyyy-MM-ddHH:mm:ss")+"之后重試,thanks!";

else

if(CheckFromLDAP(strs[1],password,strs[0]))

CPU.Models.UserInfouserInfo=CheckUser(strs[1]);

if(userInfo==null)

execRes.Status=false;

execRes.Message="您沒有權(quán)限操作此系統(tǒng)!";

else

execRes.Status=true;

execRes.Anything=userInfo;

//errorcount清0

CallEEPMethod.Execute(dbName,"sDEM2131","UpdateUserLoginError",strs[1].ToLower()+","+"0"+","+DateTime.Now.ToString("yyyy/MM/ddHH:mm:ss"));

else

execRes.Status=false;

//次數(shù)+1

if(errcount+11)

execRes.Message="密碼連續(xù)輸入錯誤"+(errcount+1).ToString()+"次。密碼連續(xù)輸錯5次將鎖定!";

else

execRes.Message="密碼輸入錯誤!";

dt0=DateTime.Now;

CallEEPMethod.Execute(dbName,"sDEM2131","UpdateUserLoginError",strs[1].ToLower()+","+(errcount+1).ToString()+","+DateTime.Now.ToString("yyyy/MM/ddHH:mm:ss"));

if(errcount+1==3)

execRes.Message="密碼連續(xù)輸入錯誤"+(errcount+1).ToString()+"次,請于"+dt0.AddMinutes(5).ToString("yyyy-MM-ddHH:mm:ss")+"之后重試,thanks!";

if(errcount+1==5)

execRes.Message="賬號密碼連續(xù)輸入錯誤5次,已鎖定!請聯(lián)系管理員解鎖,thanks!";

else

execRes.Status=false;

execRes.Message="賬號密碼連續(xù)輸入錯誤5次,已鎖定!請聯(lián)系管理員解鎖,thanks!";

else

execRes.Status=false;

execRes.Message="找不到此賬號,請重新輸入!";

else

execRes.Status=false;

execRes.Message="找不到此賬號,請重新輸入!";

returnexecRes;

}

根據(jù)登錄不同的網(wǎng)域進行Form驗證

privateboolCheckFromLDAP(stringntID,stringntPWD,stringdomain)//根據(jù)登錄的不同網(wǎng)域進行Form驗證

boolresult=false;

stringstrUser;

strUser=domain+"\\"+ntID;

if(domain.ToLower().Equals("gi"))

domain="";

elseif(domain.ToLower().Equals("cqc_cci"))

domain="";

elseif(domain.ToLower().Equals("vn"))

domain="01";

elseif(domain.ToLower().Equals("njp_cci"))

domain="";

else

domain="";

DirectoryEntryentry=newDirectoryEntry("LDAP://"+domain,strUser,ntPWD);

using(DirectorySearchersearcher=newDirectorySearcher(entry))

searcher.Filter=string.Format("((object",ntID);

SearchResultsr=searcher.FindOne();

using(SearchResultCollectionresults=searcher.FindAll())

if(results.Count0)

//if(results[0].Properties.Contains("employeeID"))

//empID=results[0].Properties["employeeID"][0].ToString();

//else

//empID=results[0].Properties["extensionattribute3"][0].ToString();

result=true;

catch(Exceptionex)

//LogHelper.Error(ex.Message);

returnresult;

}

根據(jù)不同的用戶登錄進行權(quán)限管理

publicboolCheckPermission(stringcontrollerName,stringactionName,stringplant,stringuserID)

boolresult=false;

//if(actionName.StartsWith("_"))

//actionName=actionName.Substring(1);

UserInfouserInfo=CheckUser(userID);

if(userInfo!=null)

if(controllerName=="Home")

result=true;

elseif(userInfo.Permissions.Contains(controllerName))

if(!string.IsNullOrEmpty(pla

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論