防止網頁被連續多次整理
在此範例中, 設定了二個變數來控制多次整理的狀態
一個是第一次讀取的時間
另一個是計數器
再結合session, 即可偵測使用者重新整理的次數
目前設定為1分鐘內只允許5次的讀取
其中MyBase的設計主要是可以提供繼承使用, 只要繼承此類別的程式皆會套用此功能
If Trim("" & Session(MyBase.ToString & "ckSessionTime")) = "" Then
Session(MyBase.ToString & "ckSessionTime") = Now
Session(MyBase.ToString & "ckSessionTimes") = 1
Else
Session(MyBase.ToString & "ckSessionTimes") = Session(MyBase.ToString & "ckSessionTimes") + 1
End If
If Session(MyBase.ToString & "ckSessionTimes") > 5 Then
If Now.Subtract(DateTime.Parse(Session(MyBase.ToString & "ckSessionTime"))).TotalMinutes < 1 Then
Response.Write("<script>alert('請勿連續多次重新整埋!');</script>")
Exit Sub
Else
Session(MyBase.ToString & "ckSessionTime") = ""
Session(MyBase.ToString & "ckSessionTimes") = 0
End If
End If
Session(MyBase.ToString & "ckSessionTime") = Now
Session(MyBase.ToString & "ckSessionTimes") = 1
Else
Session(MyBase.ToString & "ckSessionTimes") = Session(MyBase.ToString & "ckSessionTimes") + 1
End If
If Session(MyBase.ToString & "ckSessionTimes") > 5 Then
If Now.Subtract(DateTime.Parse(Session(MyBase.ToString & "ckSessionTime"))).TotalMinutes < 1 Then
Response.Write("<script>alert('請勿連續多次重新整埋!');</script>")
Exit Sub
Else
Session(MyBase.ToString & "ckSessionTime") = ""
Session(MyBase.ToString & "ckSessionTimes") = 0
End If
End If
-----------------------
Share is Power