專利名稱:一種限制用戶多地點同時登錄的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種限制用戶多地點同時登錄的方法,屬于信息技術(shù)領(lǐng)域。
背景技術(shù):
在信息管理系統(tǒng)軟件中,為了保障整個業(yè)務(wù)流程在管理上是閉環(huán)的,這就要求,每個環(huán)節(jié)都是可控的,在業(yè)務(wù)處理的每個環(huán)節(jié)都是由特定的用戶來負責完成的,為了保障業(yè)務(wù)的一致性,唯一性和不可抵賴性,軟件系統(tǒng)均要求在系統(tǒng)層面對用戶的登錄行為進行控制,限制用戶在同一時刻只能在一個地點進行登錄,主要有兩個好處一方面在應用層面避免了業(yè)務(wù)處理的沖突,在一定程度上減輕了數(shù)據(jù)庫方面的壓力;另一方面可以盡早的發(fā)現(xiàn)用戶身份被盜用,提高了系統(tǒng)的安全等級。在限制用戶登錄過程中需要考慮客戶端正常、非正常注銷以及系統(tǒng)崩潰等多種復 雜情況,在已有的解決方案中,大都選用微軟的主域控制器加上LimitLogon工具來完成類似的限制,但該方法在技術(shù)實現(xiàn)上較為復雜,并且需要額外配置域控制器來完成,額外增加了項目的成本與開發(fā)周期,特別對于中小軟件項目該解決方案很難適用,迫切的需要一種簡單易用的方法來解決限制用戶多地點同時登錄的難題。
發(fā)明內(nèi)容
本發(fā)明的目的是克服現(xiàn)有技術(shù)中存在的不足,提供一種限制用戶多地點同時登錄的方法,本方法不依賴于任何基于注銷觸發(fā)事件的方式,能夠有效的對客戶登錄行為進行限制。按照本發(fā)明提供的技術(shù)方案,所述的限制用戶多地點同時登錄的方法是根據(jù)用戶登錄所在計算機的硬件信息生成一個登錄憑證,并設(shè)置所述憑證的有效期,然后將憑證傳遞到服務(wù)器端,客戶端每隔一定周期自動的進行憑證的續(xù)期,服務(wù)器端依據(jù)憑證及有效期對登錄進行限制控制,若憑證在有效期內(nèi)則允許用戶登錄,否則拒絕用戶登錄。所述憑證是系統(tǒng)判斷特定用戶登錄的唯一證據(jù),所述憑證的屬性信息包括用戶標識、登錄所在計算機MAC地址、精確到毫秒的登錄時間、有效期,并將屬性信息采用對稱加密算法進行加密后傳遞給服務(wù)器端。所述憑證中的登錄時間LoginTime有兩個用途,一是用于和計算機MAC地址一起構(gòu)建對登錄地點的唯一描述;二是由服務(wù)器端的登錄限制服務(wù)控制整個用戶的登錄生命周期;憑證中的有效期TimeOut用于記錄還有多長時間就可以認為該用戶已經(jīng)注銷、退出或異常關(guān)閉。進一步的,所述的限制用戶多地點同時登錄的方法具體包括以下步驟
(I)查詢對應用戶的登錄憑證記錄表,并對該用戶的該條憑證進行數(shù)據(jù)庫級加鎖,防止此時用戶在其它地點并發(fā)登錄,在此基礎(chǔ)上讀取出用戶的最近一次歷史登錄憑證,記為Credential_History [Userid, Siteld, LoginTime, TimeOut] ;UserId, Siteld, LoginTime,TimeOut分別表示所述用戶標識、登錄所在計算機MAC地址、登錄時間、有效期;(2)判斷當前登錄憑證中的計算機MAC地址Credential_Current.SiteId是否等于最近一次歷史登錄憑證中的計算機MAC地址Credential_History. Siteld,若等于說明是在本機進行再次登錄,則直接允許登錄,并將當前登錄憑證Credential_Current記錄到登錄憑證記錄表中,并將允許登錄信息返回到客戶端中;
(3)若當前登錄憑證中的計算機MAC地址Credential_Current.SiteId不等于最近一次歷史登錄憑證中的計算機MAC地址Credential_History. SiteId則說明此次登錄的地點同上次不同,轉(zhuǎn)到步驟4進行繼續(xù)判斷; (4)判斷Credential_Current. LoginTime - Credential_History. LoginTime 是否大于Credential_History. TimeOut,即當前登錄憑證中的登錄時間與最近一次歷史登錄憑證中的登錄時間之差是否大于最近一次歷史登錄憑證中的有效期;若大于則說明原登錄已經(jīng)注銷或程序停止運行,此時返回允許登錄信息到客戶端中,否則說明用戶已經(jīng)登錄,且目前正在使用系統(tǒng)中,禁止該用戶重復登錄,返回禁止登錄信息到客戶端中;
(5)客戶端成功登錄后,啟動一個專門的線程,定時發(fā)送憑證續(xù)期時間Time^se信息給服務(wù)器端,服務(wù)器端接收到續(xù)期請求后,會更新用戶的登錄憑證記錄中的TimeOut屬性值,使TimeOut = TimeOut + TimeLease,等號表示等號右邊的值賦值到左邊的量,此處TimeLease=TimeMax/2, TimeMax是系統(tǒng)允許的在一個地點注銷后,能在另一個地點登錄的最大時間間隔;
(6)客戶端循環(huán)的按周期向服務(wù)器端進行續(xù)期。本發(fā)明的優(yōu)點是本發(fā)明所述的方法簡單易用,其實施不需部署專門的主域控制器,成本非常低。
圖I是本發(fā)明的總體流程圖。圖2是客戶端與服務(wù)器端信息交互關(guān)系圖。
具體實施例方式下面結(jié)合附圖和實施例對本發(fā)明作進一步說明。本發(fā)明所述的限制用戶多地點同時登錄的方法涉及軟件的客戶端與軟件的服務(wù)器端,其中客戶端負責用戶的合法性判斷,以及登錄憑證的生成、緩存及憑證續(xù)期,服務(wù)器端負責登錄憑證信息的記錄、續(xù)期的增加以及判斷是否允許登錄。本發(fā)明的基本思想是根據(jù)用戶登錄所在計算機的硬件信息生成一個登錄憑證,并設(shè)置該憑證的有效期,然后將憑證傳遞到服務(wù)器端,客戶端每隔一定周期自動的進行憑證的續(xù)期,服務(wù)器端依據(jù)憑證及有效期對登錄進行限制控制。所述憑證是系統(tǒng)判斷特定用戶登錄的唯一證據(jù),所述憑證的屬性信息包括用戶標識Userid、登錄所在計算機MAC地址Siteld、精確到毫秒的登錄時間LoginTime、有效期TimeOut,并將屬性信息采用對稱加密算法進行加密后傳遞給服務(wù)器端。如圖I所示,具體步驟如下
(I)客戶端根據(jù)用戶的錄入信息,判斷其是否合法用戶,若是合法用戶則獲取該用戶的Userid、Mac地址、CPUId (主機CPU的標識)等信息,并獲得服務(wù)器的當前時間作為本次登錄的LoginTime,設(shè)置TimeOut = Timeliease=TimeMax/^,基于上述信息構(gòu)建登錄憑證,經(jīng)對稱加密后傳遞到服務(wù)器端的登錄驗證服務(wù)(采用標準的對稱加密算法進行加密);
(2)登錄驗證服務(wù)接收到登錄請求后,經(jīng)解密后依據(jù)憑證中的UserId查詢對應用戶的登錄憑證記錄表,并對該行記錄進行加鎖,防止其他用戶更改該記錄;
(3)服務(wù)器端登錄驗證服務(wù),采用“登錄限制方法”對登錄信息進行驗證,并將登錄驗證信息經(jīng)加密后反饋到客戶端登錄模塊中,并對登錄憑證記錄進行解鎖;
(4)客戶端接收到登錄驗證信息后,對信息進行解密后解析,若被限制登錄,則提示該用戶已在其它地點登錄,并將該地點的MAC地址反饋給用戶,用戶可同網(wǎng)管聯(lián)系確定究竟在何處登錄;
(5)若客戶端接收到允許登錄信息,則導航到指定的目標功能界面以供用戶使用,同時啟動一個單獨的線程,按周期TimeMax/2向服務(wù)器進行續(xù)期,至此登錄過程結(jié)束。上述過程中所涉及的客戶端與服務(wù)器端信息交互關(guān)系如圖2所示。憑證的生成用戶登錄的憑證是系統(tǒng)判斷特定用戶登錄的唯一證據(jù),本方法中,登錄憑證包括用戶標識、計算機MAC地址、精確到毫秒的登錄時間、有效期等屬性信息,并將該信息采用對稱加密算法進行加密后傳遞給服務(wù)器端。憑證中的用戶標識為信息系統(tǒng)中對用戶的唯一性的描述,通過該屬性可以識別具體的登錄者是誰,此處用UserId來表示。憑證中的計算機MAC地址為信息系統(tǒng)中對地點的唯一性描述,考慮到計算機網(wǎng)卡的MAC地址亦可配置,因此為了更精確的對地點進行唯一性描述,通過聯(lián)合用戶計算機的CPUId 一起構(gòu)造對地點的唯一性描述,即Siteld通過該屬性可以識別具體的登錄地點是哪兒。憑證中的登錄時間,此處用LoginTime來表述,有兩個用途,一個用途是用于和MAC地址一起構(gòu)建對登錄地點的唯一描述;另一個用途是由服務(wù)器端的登錄限制服務(wù)控制整個用戶的登錄生命周期。憑證中的有效期,此處用TimeOut來表述,其主要用于記錄該用戶還有多長時間就可以認為其已經(jīng)注銷、退出或異常關(guān)閉。
登錄限制方法如下。在客戶端登錄時,將登錄的憑證信息發(fā)送給服務(wù)器端的登錄處理服務(wù),此憑證信息記為Credential_Current [Userid, Siteld, LoginTime, TimeOut]服務(wù)器端的登錄處理服務(wù)的處理方法如下
(I)查詢對應用戶的登錄憑證記錄表,并對該用戶的該條憑證進行數(shù)據(jù)庫級加鎖,防止此時用戶在其它地點并發(fā)登錄現(xiàn)象的產(chǎn)生,在此基礎(chǔ)上讀取出用戶的最近一次歷史登錄憑證,在此處記為Credential_History [Userid, Siteld, LoginTime, TimeOut]。(2)判斷 Credential_Current. SiteId 是否等于 Credential_History.Siteld,若等于說明是在本機進行再次登錄,則直接允許其登錄,并將Credential_Current信息記錄到登錄憑證記錄表中,并將允許登錄信息返回到客戶端中。(3)若Credential_Current. SiteId 不等于 Credential_History. SiteId則說明此次登錄的地點同上次不同,轉(zhuǎn)到步驟4進行處理。(4)判斷(Credential_Current. LoginTime - Credential_History. LoginTime )是否大于Credential_History. TimeOut,若大于則說明原登錄已經(jīng)注銷或程序停止運行,此時可以返回允許登錄信息到客戶端中,否則說明該用戶已經(jīng)登錄,目前正在使用系統(tǒng)中,禁止該用戶登錄,返回禁止登錄信息到客戶端中。(5)客戶端成功登錄后,啟動一個專門的線程,通過該線程定時發(fā)送憑證續(xù)期時間Time^se信息給服務(wù)器端,服務(wù)器端接收到續(xù)期請求后,會更新該用戶的登錄憑證記錄中的TimeOut屬性值,使TimeOut = TimeOut + Timeljease,此處Timeljease的大小同系統(tǒng)允許的在一個地點注銷后,能在另一個地點登錄的最大時間間隔TimeMax有關(guān),依據(jù)采樣定理 TimeL6as6=TimeMax/2??蛻舳搜h(huán)的按周期Tin^ease向服務(wù)器端進行續(xù)期。
權(quán)利要求
1.一種限制用戶多地點同時登錄的方法,其特征是根據(jù)用戶登錄所在計算機的硬件信息生成一個登錄憑證,并設(shè)置所述憑證的有效期,然后將憑證傳遞到服務(wù)器端,客戶端每隔一定周期自動的進行憑證的續(xù)期,服務(wù)器端依據(jù)憑證及有效期對登錄進行限制控制,若憑證在有效期內(nèi)則允許用戶登錄,否則拒絕用戶登錄。
2.如權(quán)利要求I所述的限制用戶多地點同時登錄的方法,其特征是,所述憑證是系統(tǒng)判斷特定用戶登錄的唯一證據(jù),所述憑證的屬性信息包括用戶標識、登錄所在計算機MAC地址、精確到毫秒的登錄時間、有效期,并將屬性信息采用對稱加密算法進行加密后傳遞給服務(wù)器端。
3.如權(quán)利要求I所述的限制用戶多地點同時登錄的方法,其特征是,所述憑證中的登錄時間LoginTime有兩個用途,一是用于和計算機MAC地址一起構(gòu)建對登錄地點的唯一描述;二是由服務(wù)器端的登錄限制服務(wù)控制整個用戶的登錄生命周期;憑證中的有效期TimeOut用于記錄還有多長時間就可以認為該用戶已經(jīng)注銷、退出或異常關(guān)閉。
4.如權(quán)利要求2所述的限制用戶多地點同時登錄的方法,其特征是,包括以下步驟 (1)查詢對應用戶的登錄憑證記錄表,并對該用戶的該條憑證進行數(shù)據(jù)庫級加鎖,防止此時用戶在其它地點并發(fā)登錄,在此基礎(chǔ)上讀取出用戶的最近一次歷史登錄憑證,記為Credential_History [Userid, Siteld, LoginTime, TimeOut] ;UserId, Siteld, LoginTime,TimeOut分別表示所述用戶標識、登錄所在計算機MAC地址、登錄時間、有效期; (2)判斷當前登錄憑證中的計算機MAC地址Credential_Current.SiteId是否等于最近一次歷史登錄憑證中的計算機MAC地址Credential_History. Siteld,若等于說明是在本機進行再次登錄,則直接允許登錄,并將當前登錄憑證Credential_Current記錄到登錄憑證記錄表中,并將允許登錄信息返回到客戶端中; (3)若當前登錄憑證中的計算機MAC地址Credential_Current.SiteId不等于最近一次歷史登錄憑證中的計算機MAC地址Credential_History. SiteId則說明此次登錄的地點同上次不同,轉(zhuǎn)到步驟4進行繼續(xù)判斷;(4)判斷Credential_Current. LoginTime - Credential_History. LoginTime 是否大于Credential_History. TimeOut,即當前登錄憑證中的登錄時間與最近一次歷史登錄憑證中的登錄時間之差是否大于最近一次歷史登錄憑證中的有效期;若大于則說明原登錄已經(jīng)注銷或程序停止運行,此時返回允許登錄信息到客戶端中,否則說明用戶已經(jīng)登錄,且目前正在使用系統(tǒng)中,禁止該用戶重復登錄,返回禁止登錄信息到客戶端中; (5)客戶端成功登錄后,啟動一個專門的線程,定時發(fā)送憑證續(xù)期時間Time^se信息給服務(wù)器端,服務(wù)器端接收到續(xù)期請求后,會更新用戶的登錄憑證記錄中的TimeOut屬性值,使TimeOut = TimeOut + TimeLease,等號表示等號右邊的值賦值到左邊的量,此處TimeLease=TimeMax/2, TimeMax是系統(tǒng)允許的在一個地點注銷后,能在另一個地點登錄的最大時間間隔; (6)客戶端循環(huán)的按周期向服務(wù)器端進行續(xù)期。
全文摘要
本發(fā)明提出了一種限制用戶多地點同時登錄的方法,根據(jù)用戶登錄所在計算機的硬件信息生成一個登錄憑證,并設(shè)置該憑證的有效期,然后將憑證傳遞到服務(wù)器端,客戶端每隔一定周期自動的進行憑證的續(xù)期,服務(wù)器端依據(jù)憑證及有效期對登錄進行限制控制。本發(fā)明所述方法不依賴于任何基于注銷觸發(fā)事件的方式,能夠有效的對客戶登錄行為進行限制。
文檔編號H04L29/06GK102739686SQ20121023084
公開日2012年10月17日 申請日期2012年7月5日 優(yōu)先權(quán)日2012年7月5日
發(fā)明者史海波, 段彬, 潘福成, 胡國良, 里鵬 申請人:無錫中科泛在信息技術(shù)研發(fā)中心有限公司