台灣最大程式設計社群網站
線上人數
1548
 
會員總數:241122
討論主題:186796
歡迎您免費加入會員
討論區列表 >> ASP.NET >> login帳號密碼錯誤鎖起來
[ 變換順序 ]  
[我要回覆]
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
login帳號密碼錯誤鎖起來
價值 : 10 QP  點閱數:290 回應數:45

樓主

小羊
門外漢
0 2
74 31
發送站內信

我是用Login工具來寫登入程式
我想要加一個功能
如果這個使用者輸入帳號或密碼錯誤三次
把使用者鎖起來不能進入此網頁
要管理員把它解除或幫它創一個新的
這樣要怎麼寫??
請大大幫幫我




搜尋相關Tags的文章: [ ASP.NET ] , [ 網頁 ] , [ 登入 ] ,
本篇文章發表於2017-11-14 16:40
別忘捐VP感謝幫助你的人 新手會員瞧一瞧
1樓
回應

Jerry
捐贈 VP 給 Jerry 檢舉此回應
資料表增加一個欄位 紀錄登入失敗次數 失敗一次+1次
登入時增加條件 失敗次數超過3次不能登入
設計一個管理頁面 顯示所有失敗次數遭過3次的帳號
讓管理員能解除封鎖 讓失敗次數歸零
本篇文章回覆於2017-11-14 16:58
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
回應

topcat
捐贈 VP 給 topcat 檢舉此回應
如果,您是在建專案的時候,直接使用MemberShip或者Identity,由系統幫您產生資料庫
那麼對於資料存取不知如何處理,登入驗證不知如何處理,就會有困擾

如果,您是使用自己的資料庫,驗證是自己撰寫的程式來驗證使用者輸入的帳號密碼
這樣,接下來的問題就不難了
同#1的大大所說,資料表中新增一個欄位,然後每次登入失敗就+1,登入成功就重設為0
登入的時候,增加一個檢查,如果該欄位數字>=3,就傳回登入次數超過3次,請聯絡系統人員解除
系統人員解除,也就是把資料表的該欄位,重設為0

所以,如果您該開始寫系統,用的是內建幫您建立的資料庫
小喵建議您,或許您可以改為使用自己的資料庫,自己撰寫登入驗證

您可以參考以下這一篇
https://dotblogs.com.tw/topcat/archive/2008/03/05/1237.aspx

有問題請再提出唷
^_^

本篇文章回覆於2017-11-14 18:09
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
3樓
作者回應

小羊
檢舉此回應
我是用asp.net自己建的資料庫
我是新手所以程式不太會寫
那要怎麼抓取資料庫的資料+1呢?
本篇文章回覆於2017-11-15 08:31
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
4樓
回應

topcat
捐贈 VP 給 topcat 檢舉此回應
怎麼抓取資料庫的資料+1呢

一句Sql語法就可以囉
類似以下這樣


^_^
本篇文章回覆於2017-11-15 09:07
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
5樓
作者回應

小羊
檢舉此回應
sqlTxt是不是要宣告甚麼啊?
LohinCnt是不是自己宣告的錯誤名稱
@UserId是不是某個使用者的名稱?
本篇文章回覆於2017-11-15 09:35
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
6樓
作者回應

小羊
檢舉此回應
sqlstring = ""
sqlstring &= "UPDATE [member]"
sqlstring &= "SET error = error+1"
sqlstring &= "WHERE account = R.Cells(0)"
cn.Open()
cm.Connection = cn
cm.ExecuteNonQuery()
cn.Close()

他出現錯誤
ExecuteNonQuery: CommandText property has not been initialized
本篇文章回覆於2017-11-15 09:48
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
7樓
回應

Jerry
捐贈 VP 給 Jerry 檢舉此回應
R.Cells(0)必須用參數的方式給予值

本篇文章回覆於2017-11-15 09:59
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
8樓
作者回應

小羊
檢舉此回應


我完整的判斷程式在這邊
上面是帳號正確密碼正確跑的
下面是帳號正確密碼錯誤跑的
cm.ExecuteNonQuery()這一行還是跑出錯誤
Object must implement IConvertible.
本篇文章回覆於2017-11-15 10:05
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
9樓
回應

Jerry
捐贈 VP 給 Jerry 檢舉此回應
改成這樣試試

本篇文章回覆於2017-11-15 10:08
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
10樓
作者回應

小羊
檢舉此回應
還是一樣的問題
程式頁面給的錯誤是Failed to convert parameter value from a DataControlFieldCell to a String.
本篇文章回覆於2017-11-15 10:15
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
11樓
最有價值解答

Jerry
捐贈 VP 給 Jerry 檢舉此回應
改第9行

本篇文章回覆於2017-11-15 10:18
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
12樓
作者回應

小羊
檢舉此回應
解決這個問題了
接下來我是不是只要在前面輸入帳號正確時
判斷它的error次數有沒有>=3
如果有就顯示label:錯誤次數過多請聯絡之類的?
本篇文章回覆於2017-11-15 10:25
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
13樓
回應

Jerry
捐贈 VP 給 Jerry 檢舉此回應
情況一:
error >= 3
禁止登入,給予登入者警告訊息,且需通知管理員解除封鎖方能重新開通
情況二:
error < 3
允許登入,若error > 0則登入成功後必須將error的值歸零
情況三:
error = 0
允許登入,無需做任何動作
本篇文章回覆於2017-11-15 10:30
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
14樓
作者回應

小羊
檢舉此回應

現在問題是程式改成這樣
就算輸入正確的帳號密碼他也不能進去
本篇文章回覆於2017-11-15 10:48
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
15樓
回應

Jerry
捐贈 VP 給 Jerry 檢舉此回應
你的R.Cells(4).Text < 3將error歸零後
仍要讓使用者登入
本篇文章回覆於2017-11-15 11:07
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
[ 變換順序 ]   

回覆
如要回應,請先登入.