日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

限制不能使用最近三次的历史密码

發布時間:2024/4/17 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 限制不能使用最近三次的历史密码 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

開發的軟件中是允許用戶可以更自己的密碼,現在客戶有這樣一個要求,是當用戶更新密碼時,要限制用戶不能重新使用最近三次的歷史密碼。

實現客戶的要求,唯有在數據庫,創建一個密碼更新Log表,然后再為Member表寫一個觸發器,每當用戶更新密碼時,去檢索這個Log表,看看這次更新的密碼是否存在Log表中,如果存在,提示用戶,返之繼續更新動作,然后把更新的信息插入Log表中,最后是刪除Log記錄,只保留此用戶最近三次記錄。

相關代碼,可以參考:

MemberPasswordChangeLog CREATE?TABLE?MemberPasswordChangeLog
(
????Log_Id?INT?IDENTITY(1,1)?PRIMARY?KEY?NOT?NULL,
????MemberId?INT?NOT?NULL,
????PWD_Value?NVARCHAR(100)?NOT?NULL,
????Log_Date?DATETIME?DEFAULT(GETDATE())?NOT?NULL
)

GO

?

觸發器:

tri_Member_Update CREATE?TRIGGER?[dbo].[tri_Member_Update]?
ON?[dbo].[Member]
FOR?UPDATE
AS
BEGIN
????DECLARE?@MemberId?INT,@N_Value?NVARCHAR(100),@O_Value?NVARCHAR(100)
????SELECT?@MemberId?=?[MemberId],@O_Value?=?[Password]?FROM?DELETED
????SELECT?@O_Value?=?[Password]?FROM?INSERTED
????IF?@N_Value?<>?@O_Value??--比較新舊兩個值,如果不一樣,會員更新密碼
????BEGIN
????????--去檢查MemberPasswordChangeLog表,看看最近用戶更新密碼的情況
????????IF?EXISTS(SELECT?TOP?1?1?FROM?[dbo].[MemberPasswordChangeLog]?WHERE?[MemberId]?=?@MemberId?AND?[PWD_Value]?=?@N_Value)
????????BEGIN
????????????RAISERROR(N'不能使用最近三次的歷史密碼。',16,1)
????????????RETURN?
????????END
????????
????????--把更新數據插入Log表中
????????INSERT?INTO?[dbo].[MemberPasswordChangeLog]?([MemberId],[PWD_Value])?VALUES?(@MemberId,@N_Value)
????????
????????--保留最近更新三筆記錄,刪除額外記錄
????????DELETE?FROM?[dbo].[MemberPasswordChangeLog]?WHERE?[MemberId]?=?@MemberId?AND?[Log_Id]?NOT?IN?(
????????????SELECT?TOP(3)?[Log_Id]?FROM?[dbo].[MemberPasswordChangeLog]?WHERE?[MemberId]?=?@MemberId?ORDER?BY?[Log_Date]?DESC
????????)
????END????
END

?

?

轉載于:https://www.cnblogs.com/insus/archive/2012/01/30/2332013.html

總結

以上是生活随笔為你收集整理的限制不能使用最近三次的历史密码的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。