2012-01-29 27 views
3

我爲我的一個客戶開發了一個Web應用程序,我的客戶需求是這樣的。如何限制數據輸入用戶在我的網站上僅工作8小時

每個數據錄入用戶在其工作區域內工作的時間不超過6小時。否則,當他嘗試登錄到他的工作區域時,他會註銷。我正在使用SQL Server 2005的Asp.net C#

任何幫助將不勝感激。在此先感謝

回答

0

這可能會變得棘手。

您必須將保存在數據庫的登錄時間。 然後,作爲登錄例程的一部分,您檢查登錄時間。

如果情況變得複雜,用戶可能會在一天中多次登錄。如果沒有人在午夜工作,則可以查詢該用戶的當天日期的最短登錄時間。

但是,如果用戶在上午9:00登錄,然後在12:00登出午餐並在1:00重新登錄,該怎麼辦?如果您在3點檢查今天的最短時間,您將忽略午休,並且您不會讓用戶重新登錄。

最後,各個邏輯步驟很簡單。但是你需要考慮所有不同的場景。

+0

是的很多感謝:這是解決方案可以在C#中有一些代碼用於這種情況? – 2012-01-30 05:06:33

1

您需要澄清的要求:

1-如果用戶創建一個帳戶在網上能夠工作, 和

1-1-他或她從一個特定的時間工作到一個特定的結束時間 ,他或她必須能夠在第二天回來並且工作 另外6個小時,那麼您可以在數據庫中有兩列 start_time和finish_time並拒絕對數據庫的任何請求來自該用戶的 落在該範圍之外。

1-2-3他或她每天都工作,但在靈活的時間,那麼當 用戶登錄天天把時間戳在數據庫列名爲 啓動,並檢查由每個請求的數據庫如果用戶在開始時間過去6小時後看到 。如果是這樣,拒絕請求 直到第二天。

1-3-他或她只能用一次6小時,並不會返回到第二天 工作,然後簡單地用account_created列,並在數據庫中使用標誌6小時後 禁用該帳戶。 檢查數據庫的每個請求,看看用戶是否被禁用 或不。

2 - 如果用戶沒有創建一個帳戶,只能工作 6小時,

2-1-在固定的時間工作,然後拒絕從他/她 工作站以外的任何要求指定的小時數。如果你幸運的話,每個工作站都有一個特定的IP地址,那麼 Request.UserHostAddress可以讓你知道工作站的 與你的代碼進行了交互。

2-2工作在靈活的工作時間,使用2-1同樣的方法,但在你的數據庫中有一個 開始列,並檢查是否用戶(具體 IP)與你的代碼6小時內進行交互開始時間。

如果您必須按照上述說明使用登錄/註銷,請執行上述操作,而不是直接拒絕用戶,只需通過清除會話cookie將其註銷即可。如果他們要重新登錄,請檢查它們是否在可接受的時間限制內,如果不在,請立即將其註銷。

+0

感謝您的國王響應: – 2012-01-30 04:57:21

+0

感謝您的好評:我的客戶要求是:每天用戶只能工作6個小時不超過。時間可能在一天中的任何時間。??你有任何代碼。很多謝謝 – 2012-01-30 05:04:35

+0

我沒有任何代碼,但正如我所說,它只是寫了6小時的限制部分並不難。只需跟蹤用戶每天首次登錄的時間,將會話cookie設置爲6小時後過期,在每個asp.net代碼的開頭都有一個具有過期時間的會話變量,請檢查當前時間會話變量用於過期,如果它通過了,則通過刪除所有會話變量並刪除co​​okie來記錄用戶。每天的開始時間需要進入數據庫,到期時間可以在程序中計算。 – Bee 2012-01-31 12:19:16