Winform開(kāi)發(fā)框架之系統(tǒng)重新登錄、自動(dòng)登錄實(shí)現(xiàn)
當(dāng)前位置:點(diǎn)晴教程→知識(shí)管理交流
→『 技術(shù)文檔交流 』
在業(yè)務(wù)系統(tǒng)的操作過(guò)程中,有時(shí)候,用戶需要切換用戶進(jìn)行重新登錄,這種情況有時(shí)候是因?yàn)橐粋€(gè)人管理多個(gè)用戶賬號(hào),希望通過(guò)不同的賬號(hào)登錄進(jìn)行管理不同的資料,另一種情況是酒店的換班操作,另一個(gè)人接替前面的人進(jìn)行系統(tǒng)維護(hù)管理。這種重新登錄其實(shí)也是一種友好的操作之一,試想一下,換個(gè)賬號(hào)登錄,就需要推出系統(tǒng),重新尋找運(yùn)行程序才可以,而且如果系統(tǒng)啟動(dòng)較慢一點(diǎn)的,還需要等待,所以實(shí)現(xiàn)重新登錄,有時(shí)候也是必要的。因此實(shí)現(xiàn)這個(gè)功能,也是體現(xiàn)我們開(kāi)發(fā)的系統(tǒng)注重細(xì)節(jié)的表現(xiàn)。 另外,自動(dòng)登錄(其實(shí)是接受通過(guò)命令行參數(shù)進(jìn)行登錄)也是很常見(jiàn)的,有時(shí)候,讓客戶端記住用戶的賬號(hào)密碼,我們?cè)诤笈_(tái)通過(guò)調(diào)動(dòng)命令行方式進(jìn)行登錄,讓系統(tǒng)程序接收到相關(guān)的參數(shù)值即可進(jìn)行登錄了。 1、系統(tǒng)重新登錄實(shí)現(xiàn)大致的思路,就是登錄系統(tǒng)后,在系統(tǒng)菜單中有一項(xiàng)重新登錄的功能入口,單擊可以要求客戶重新輸入密碼進(jìn)行登錄,如下所示。 代碼實(shí)現(xiàn)就是通過(guò)把初始化的時(shí)候,用戶相關(guān)的操作放到一個(gè)函數(shù)里面,保證重新執(zhí)行這個(gè)函數(shù)操作就能重新刷新登錄用戶信息即可。如下所示。 在InitUserRelated函數(shù)里面,我們把用戶相關(guān)的初始化操作放在里面,其中包括顯示登錄用戶信息、用戶可操作按鈕或者菜單、首頁(yè)信息等相關(guān)項(xiàng)目,代碼如下所示。 /// 其中InitAuthorizedUI就是判斷用戶有哪些權(quán)限的函數(shù),根據(jù)權(quán)限系統(tǒng)獲取到的功能點(diǎn),在這里對(duì)界面元素進(jìn)行重新刷新,有權(quán)限的就顯示,沒(méi)有的就隱藏即可,如下所示。 /// 這樣封裝好后,我們需要重新登錄就方便了,我們?cè)谥匦碌卿浀牟藛尾僮骼锩?,?shí)現(xiàn)代碼如下所示。 private void btnRelogin_ItemClick(object sender, DevExpress.XtraBars.ItemClickEventArgs e) { if (MessageDxUtil.ShowYesNoAndWarning("您確定需要重新登錄嗎?") != DialogResult.Yes) return; Portal.gc.MainDialog.Hide(); Login dlg = new Login(); dlg.StartPosition = FormStartPosition.CenterScreen; if (DialogResult.OK == dlg.ShowDialog()) { if (dlg.bLogin) { CloseAllDocuments(); InitUserRelated(); } } dlg.Dispose(); Portal.gc.MainDialog.Show(); } 實(shí)現(xiàn)上面的操作過(guò)程,基本上就完成了重新登錄的操作了。 2、系統(tǒng)自動(dòng)登錄實(shí)現(xiàn)系統(tǒng)自動(dòng)登錄有時(shí)候很必要,在用戶自己絕對(duì)信任的電腦上,自動(dòng)登錄對(duì)用戶來(lái)說(shuō),很方便友好的,君不見(jiàn),QQ如此、旺旺如此等等。其實(shí)實(shí)現(xiàn)思路就是通過(guò)給exe執(zhí)行文件傳遞登錄參數(shù)即可,必要時(shí)登錄的參數(shù)值還可以進(jìn)行加密,給第三方進(jìn)行運(yùn)行調(diào)用,以前就做過(guò)一個(gè)在Web上自動(dòng)啟動(dòng)桌面程序Visio應(yīng)用軟件的操作,其實(shí)原理就是一樣,通過(guò)傳遞參數(shù)給執(zhí)行文件實(shí)現(xiàn)的。 [STAThread] static void Main(string[] args) { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); if (args.Length > 0) { LoginByArgs(args); } else { LoginNormal(args); } } /// 有時(shí)候,即使覺(jué)得用戶不需要通過(guò)命令行登錄,那么我們自己為了避免開(kāi)發(fā)過(guò)程中,啟動(dòng)程序時(shí)候,總是需要輸入用戶賬號(hào)密碼的問(wèn)題,也可以使用模擬自動(dòng)登錄的方式解決。 我們只需要在項(xiàng)目的屬性里面輸入內(nèi)置的用戶名密碼,這樣我們測(cè)試起來(lái)就不用登錄那么麻煩了。 以上就是Winform開(kāi)發(fā)框架中對(duì)于系統(tǒng)重新登錄以及系統(tǒng)自動(dòng)登錄(命令行登錄)的思想思路及方式,歡迎大家提供更好的思路及技巧,或者進(jìn)行探討,謝謝支持。 該文章在 2016/12/27 22:46:10 編輯過(guò) |
關(guān)鍵字查詢
相關(guān)文章
正在查詢... |